2016-11-22 19 views
1

同樣的問題,因爲這一個: sql: check if entry in table A exists in table BSQL:檢查是否在一個表中存在的條目到另一個,實際上消除重複

這裏是我的表,員工和用戶

Employee   User 
EmpNo    EmpNo 
PositionCode 

我只是想檢查是否在表中的EMPNO:僱員已經在表中存在:在這裏用戶 這麼香港專業教育學院使用的代碼:

SELECT Employee.EmpNo, PositionCode 
FROM Employee 
WHERE NOT EXISTS (SELECT 1 
        FROM User 
        WHERE User.EmpNo= Employee.EmpNo) 

現在無線th查詢它顯示結果, 但它也顯示重複的PositionCode行。

如:

EmpNo PositionCode 
E098  ER1 
E712  ER1 
E990  ER1 

所以,是的,我只需要得到PositionCode(在這個前其ER 1)這樣我就可以把它顯示一個下拉列表,並且您不希望顯示在下拉列表相同的項對?

+0

指定預期的結果。 – jarlh

+0

指定你有和預期結果的數據 – Mansoor

+0

如果你不想要相關的員工,只有'Distinct' PositionCode,你可以選擇'DISTINCT PositionCode',這將給你所需的輸出。如果您也發佈預期結果,那將會很好。 –

回答

3

我仍然不知道你想要什麼。但從我的理解,你想有不同的PositionCode其中有EmpNo與他們有關。如果這就是你想要的,你可以選擇如下的Distinct PositionCode

SELECT DISTINCT PositionCode 
FROM Employee 
WHERE NOT EXISTS (SELECT 1 
        FROM User 
        WHERE User.EmpNo= Employee.EmpNo) 

讓我知道這是不是你在找什麼。

+0

嗨,我編輯了這個問題,希望這個時候會更清楚。 Iam考慮使用DISTINCT,但我不確定,這些顯然不會影響我在兩張表上比較EmpNo的查詢嗎?我的意思是EmpNo仍然會被驗證,如果它不存在於另一個表中並且不會顯示明顯的結果? – wolfQueen

+0

在表格上發生過濾後,將會應用不同的顯示。所以它只會使用'PositionCode'給你不同的行。 –

+0

這很酷,謝謝隊友! – wolfQueen

-1
SELECT distinct PositionCode 
FROM Employee 
WHERE NOT EXISTS (SELECT 1 
        FROM User 
        WHERE User.EmpNo= Employee.EmpNo) 
+0

儘管這可能解決問題,但爲解釋爲什麼/如何工作總是很好。 – BDL

相關問題