par
xTG » 29 août 2012, 13:10
C'est en fonction de l'ordre de tes tables dans la requête.
La jointure à droite prendra d'abord les enregistrements de la table de droite puis tentera de combler les valeurs restantes du SELECT avant la table de gauche. Si aucune correspondance on obtiendra des NULL dans les colonnes dont les n-uplets ne correspondent pas.
Exemple :
Table 1 (id, val)
1, un
3, trois
Table 2 (id, val)
1, un
2, deux
SELECT Table1.val AS v1, Table2.val AS v2 FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.id
un, un
trois, NULL
SELECT Table1.val AS v1, Table2.val AS v2 FROM Table1 RIGHT JOIN Table2 ON Table1.id = Table2.id
un, un
NULL, deux
C'est en fonction de l'ordre de tes tables dans la requête.
La jointure à droite prendra d'abord les enregistrements de la table de droite puis tentera de combler les valeurs restantes du SELECT avant la table de gauche. Si aucune correspondance on obtiendra des NULL dans les colonnes dont les n-uplets ne correspondent pas.
Exemple :
Table 1 (id, val)
1, un
3, trois
Table 2 (id, val)
1, un
2, deux
SELECT Table1.val AS v1, Table2.val AS v2 FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.id
un, un
trois, NULL
SELECT Table1.val AS v1, Table2.val AS v2 FROM Table1 RIGHT JOIN Table2 ON Table1.id = Table2.id
un, un
NULL, deux