Page 1 sur 1

Quelle est la différence entre LEFT JOIN et RIGHT JOIN ?

Posté : 29 août 2012, 12:40
par Jean-Mouloud
Bonjour,

Je voudrais savoir quelle est la différence entre LEFT JOIN et RIGHT JOIN. Si l'un d'entre vous connaît la réponse, pourrait-il m'en faire part ?

Merci d'avance.
P.S.: Dans le tutoriel où j'apprends ça, l'auteur dit qu'avec LEFT JOIN on sélectionne la table de gauche et avec RIGHT JOIN on sélectionne la table de gauche. Mais à droite/gauche de quoi ?

Re: Quelle est la différence entre LEFT JOIN et RIGHT JOIN ?

Posté : 29 août 2012, 13:09
par moogli
P.S.: Dans le tutoriel où j'apprends ça, l'auteur dit qu'avec LEFT JOIN on sélectionne la table de gauche et avec RIGHT JOIN on sélectionne la table de gauche. Mais à droite/gauche de quoi ?

A gauche ou a droite de la jointure.

une jointure s'exprime ainsi

tableGauche join tableDroite on condition (ou using(clef))

La table gauche est la table du from !

cela permet de récuperer aussi des tuple quie ne satisfond pas la jointure (généralement parce qu'il y a un null, mais pas toujours), et tu indique la tabel qui peux ne pas satisfaire la jointure

plus d'info
http://sqlpro.developpez.com/cours/sqlaz/jointures/#LIII-C

@+

Re: Quelle est la différence entre LEFT JOIN et RIGHT JOIN ?

Posté : 29 août 2012, 13:10
par xTG
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

Re: Quelle est la différence entre LEFT JOIN et RIGHT JOIN ?

Posté : 29 août 2012, 13:33
par Jean-Mouloud
Merci beaucoup pour vos deux réponse !

Re: Quelle est la différence entre LEFT JOIN et RIGHT JOIN ?

Posté : 29 août 2012, 13:47
par schim59
Bonjour,
Une petite parenthèse :
Il est important d'utiliser des index, pour les champs servant de jointures, pour ne pas faire chuter les performances du serveur. Les jointures sont très gourmandes.

Bon codage