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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Quelle est la différence entre LEFT JOIN et RIGHT JOIN ?

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

par schim59 » 29 août 2012, 13:47

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

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

par Jean-Mouloud » 29 août 2012, 13:33

Merci beaucoup pour vos deux réponse !

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

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

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

par moogli » 29 août 2012, 13:09

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

@+

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

par Jean-Mouloud » 29 août 2012, 12:40

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 ?