J'ai deux tables TABLE_A
et TABLE_B
ayant la colonne jointe comme numéro d'employé EMPNO
.SQL joint gauche gauche avec seulement quelques lignes de la droite?
Je souhaite effectuer une jointure externe gauche normale. Cependant, TABLE_B
a certains enregistrements qui sont supprimés (status='D'
), je veux que ceux-ci soient inclus. Juste pour clarifier, TABLE_B
pourrait avoir des enregistrements actifs (status = null/a/quoi que ce soit) ainsi que des enregistrements supprimés, dans ce cas, je ne veux pas cet employé dans mon résultat. Si toutefois il n'y a que des enregistrements supprimés de l'employé dans TABLE_B
je veux que l'employé soit inclus dans le résultat. J'espère que je fais mon exigence claire. (Je pourrais faire un long truc de qrslt et obtenir ce que je veux, mais je pense qu'il doit y avoir une façon plus optimisée de le faire en utilisant la syntaxe join). Apprécierait toutes les suggestions (même sans la jointure). Son newbness essaye la requête suivante sans le résultat désiré:
SELECT TABLE_A.EMPNO
FROM TABLE_A
LEFT OUTER JOIN TABLE_B ON TABLE_A.EMPNO = TABLE_B.EMPNO AND TABLE_B.STATUS<>'D'
Beaucoup apprécient n'importe quelle aide.
Cela ne remplit pas l'obligation d'inclure les lignes où le * employé seulement * a supprimé les enregistrements, n'est-ce pas? – Eric
En fait, c'est le cas. L'employé a seulement supprimé les enregistrements dans TAble_b (mais a une ligne dans TABLE_A). Ok, je dois vérifier à nouveau quand je serai au bureau. –