Bonjour,
Malgré le titre de cette discussion, je n'ai pas voulu rentrer dans celle de dam28800
car elle est assez spécifique.
J’ai une question bête :
Avec une requête comme
On recherche toutes les valeurs satisfaisant la condition de jointure précisée dans prédicat, puis on rajoute toutes les lignes de la table TJ1 (gauche) qui n'ont pas été prises en compte au titre de la satisfaction du critère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT TJ1.COL1, TJ1.COL2 FROM TEST_JOIN1 TJ1 LEFT OUTER JOIN TEST_JOIN2 TJ2 ON TJ1.COL1 = TJ2.COL1 AND TJ1.COL2 = 'AA'
S’il n’y a rien d’autre : pas de clause WHERE, pas de ORDER
Avec récupération de colonnes QUE sur la table de gauche
Et si j’ai bien compris
Cela revient au même d’attaquer directement TJ1 car on récupère TOUT TJ1
(enfin pour les colonnes sélectionnées)
Je me trompe ?
Sinon, en dehors du WHERE y a-t-il d’autres cas où ne récupère pas TOUT TJ1 ?
Pour info voici ce que rend la requête suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT TJ1.COL1, TJ1.COL2, TJ2.COL1, TJ2.COL2 FROM TEST_JOIN1 TJ1 LEFT OUTER JOIN TEST_JOIN2 TJ2 ON TJ1.COL1 = TJ2.COL1 AND TJ1.COL2 = 'AA' COL1 COL2 COL1 COL2 ----------- ---- ----------- ---- 101 AA 101 AA 102 AA 102 AA 103 BB NULL NULL
Partager