我想要獲得一個表中存在的部門ID列表(PS_Y_FORM_HIRE
),但不存在於另一個表中(PS_DEPARTMENT_VW
)。如何選擇所有在一個表中存在但沒有在另一個表中的ID
這裏是什麼我有一個不能正常工作的基本知識:
SELECT h.DEPTID FROM PS_Y_FORM_HIRE h, PS_DEPARTMENT_VW d WHERE NOT EXISTS (
SELECT d1.DEPTID FROM PS_DEPARTMENT_VW d1 WHERE d1.DEPTID = h.DEPTID
and d1.SETID_GL_DEPT = 'IDBYU'
);
我試圖形成SQL Developer的這個查詢,但它只是返回空白一長串(後紡/長時間運行查詢)。另外,我需要這樣做才能生效,因此它只抓取正確的有效日期行,但我不確定如何以及在何處將其納入查詢。
編輯我忽略提及只有部門表生效日期。表格租用表不是。我需要從查詢中獲取當前有效日期行(以確保數據是準確的)。
另請注意,DEPTID
不是PS_Y_FORM_HIRE
上的關鍵字,而是PS_DEPARTMENT_VW
上的關鍵字。 (連同SETID_GL_DEPT
和EFFDT
)。
所以,理想情況下,我將列出出現在PS_Y_FORM_HIRE
中的所有部門ID,但不在PS_DEPARTMENT_VW
中。
你正在尋找被稱爲概念「anti join」 – FuzzyTree