J'essaie d'obtenir une liste des ID de département sont présents dans un tableau, (PS_Y_FORM_HIRE
), mais qui n'existent pas dans un autre tableau (PS_DEPARTMENT_VW
).Comment puis-je sélectionner tous les ID présents dans une table, mais pas dans une autre
Voici les bases de ce que j'ai qui ne fonctionne pas:
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'
);
Je suis en train de former cette requête dans SQL Developer, mais il retourne juste une longue liste des blancs (après le filage/exécuter la requête depuis très longtemps). En outre, j'ai besoin que cette date soit effective, afin qu'elle ne saisisse que la ligne correcte datée, mais je ne savais pas comment et où l'incorporer dans la requête.
EDIT j'ai oublié de mentionner que seulement la table du département est efficace daté. La table de location de formulaire ne l'est pas. J'ai besoin d'obtenir la ligne actuellement datée de cette requête (pour m'assurer que les données sont exactes).
Notez également que DEPTID
n'est pas une clé sur PS_Y_FORM_HIRE
, mais sur PS_DEPARTMENT_VW
. (Avec SETID_GL_DEPT
et EFFDT
).
Encore une fois, idéalement, j'aurai une liste de tous les identifiants de département qui apparaissent dans PS_Y_FORM_HIRE
, mais qui ne sont pas dans PS_DEPARTMENT_VW
.
Le concept que vous recherchez est appelé "anti join" – FuzzyTree