(INNER) JOIN: renvoie les enregistrements qui ont des valeurs correspondantes dans les deux tables.
LEFT (OUTER) JOIN: Renvoie tous les enregistrements de la table de gauche et les enregistrements correspondants de la table de droite.
RIGHT (OUTER) JOIN: renvoie tous les enregistrements de la table de droite et les enregistrements correspondants de la table de gauche.
FULL (OUTER) JOIN: renvoie tous les enregistrements en cas de correspondance dans le tableau de gauche ou de droite
Par exemple, supposons que nous ayons deux tables avec les enregistrements suivants:
Tableau A
id firstname lastname
___________________________
1 Ram Thapa
2 sam Koirala
3 abc xyz
6 sruthy abc
Tableau B
id2 place
_____________
1 Nepal
2 USA
3 Lumbini
5 Kathmandu
Jointure interne
Remarque: Il donne l'intersection de deux tables.
Syntaxe
SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Appliquez-le dans votre exemple de table:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA INNER JOIN TableB ON TableA.id = TableB.id2;
Le résultat sera:
firstName lastName Place
_____________________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
Joint gauche
Remarque: donnera toutes les lignes sélectionnées dans le tableau A, plus toutes les lignes sélectionnées courantes dans le tableauB.
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
Appliquez-le dans votre exemple de table
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA LEFT JOIN TableB ON TableA.id = TableB.id2;
Le résultat sera:
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
sruthy abc Null
Jointure droite
Remarque: donnera toutes les lignes sélectionnées dans le tableau B, plus toutes les lignes sélectionnées courantes dans le tableauA.
Syntaxe:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
Appliquez-le dans votre table samole:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA RIGHT JOIN TableB ON TableA.id = TableB.id2;
Le résultat sera bw:
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
Null Null Kathmandu
Jointure complète
Remarque: C'est la même chose que l'opération d'union, elle renverra toutes les valeurs sélectionnées des deux tables.
Syntaxe:
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
Appliquez-le dans votre samp [le tableau:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA FULL JOIN TableB ON TableA.id = TableB.id2;
Le résultat sera:
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
sruthy abc Null
Null Null Kathmandu
Quelques faits
Pour INNER rejoint la commande n'a pas d'importance
Pour les jointures (GAUCHE, DROITE ou COMPLÈTE) EXTÉRIEURES, l'ordre importe
En savoir plus sur w3schools
RIGHT JOIN
si nous pouvons atteindre le résultat souhaité avec justeLEFT JOIN
? : P