Quelle est la différence entre la jointure intérieure, la jointure de gauche, la jointure de droite et la jointure complète? [dupliquer]
3 réponses
la lecture de cet article original sur le projet de Code vous aidera beaucoup: représentation visuelle de SQL joint .
aussi vérifier ce post: SQL SERVER-meilleure Performance-gauche rejoindre ou non? .
"151900920 Trouver l'original de l'un à l': la Différence entre les REJOINDRE et JOINTURE EXTERNE dans MySQL .INNER JOIN récupère tous les enregistrements qui sont communes entre les deux tables en fonction de la clé étrangère
LEFT JOIN obtient tous les enregistrements de la table liée de gauche, mais si vous avez sélectionné certaines colonnes de la table de droite, s'il n'y a pas d'enregistrements liés, ces colonnes contiennent NULL
RIGHT JOIN est comme ci-dessus, mais il obtient tous les enregistrements dans la table de DROITE
full JOIN obtient tous les enregistrements des deux tables et met NULL dans les colonnes où les enregistrements connexes n'existent pas dans la table opposée
une clause de jonction SQL est utilisée pour combiner des lignes à partir de deux tables ou plus, basé sur un champ commun entre eux.
il existe différents types de jointures disponibles en SQL:
INNER JOIN : renvoie les lignes lorsqu'il y a une correspondance dans les deux tables.
LEFT JOIN : renvoie toutes les lignes de la table de gauche, même s'il n'y a pas d'allumettes dans le table de droite.
RIGHT JOIN : renvoie toutes les lignes de la table de droite, même s'il n'y a aucune correspondance dans la table de gauche.
FULL JOIN : il combine les résultats des jointures externes gauche et droite.
la table jointe contiendra tous les enregistrements des deux tables et remplira NULLs pour les matches manquants de chaque côté.
SELF JOIN" : est utilisé pour joindre une table à elle-même comme si la table était deux tables, renommant temporairement au moins une table dans la déclaration SQL.
CARTESIAN JOIN : renvoie le produit cartésien des séries d'enregistrements des deux tables ou plus jointes.
nous pouvons prendre chaque quatre premiers jointures dans les détails:
nous avons deux tableaux avec les valeurs suivantes.
TableA
id firstName lastName
.......................................
1 arun prasanth
2 ann antony
3 sruthy abc
6 new abc
TableB
id2 age Place
................
1 24 kerala
2 24 usa
3 25 ekm
5 24 chennai
....................................................................
INNER JOIN
Note :elle donne l'intersection des deux tableaux, c'est-à-dire les lignes qu'ils ont en commun dans les tableaux A et B
Syntaxe
SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;
appliquer dans notre exemple de tableau:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
INNER JOIN TableB
ON TableA.id = TableB.id2;
Résultat Sera
firstName lastName age Place
..............................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
LEFT JOIN
Note : donnera toutes les lignes sélectionnées dans le tableau a, ainsi que toutes les lignes communes sélectionnées dans le tableau B.
syntaxe
SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;
appliquer dans notre exemple de tableau:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
LEFT JOIN TableB
ON TableA.id = TableB.id2;
résultat
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
RIGHT JOIN
Note : donnera toutes les lignes sélectionnées dans le tableau B, plus toutes les lignes sélectionnées communes dans le tableau A.
syntaxe
SELECT table1.column1, table2.column2...
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field;
appliquer dans notre exemple de tableau:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
RIGHT JOIN TableB
ON TableA.id = TableB.id2;
résultat
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
NULL NULL 24 chennai
FULL JOIN
Note : toutes les valeurs sélectionnées des deux tableaux seront retournées.
syntaxe
SELECT table1.column1, table2.column2...
FROM table1
FULL JOIN table2
ON table1.common_field = table2.common_field;
appliquer dans notre exemple de tableau:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
FULL JOIN TableB
ON TableA.id = TableB.id2;
résultat
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
NULL NULL 24 chennai
Fait Intéressant
Pour les jointures internes de l'ordre n'a pas d'importance
pour (à gauche), Droit ou complet) jointures extérieures,la matière de l'ordre
mieux d'aller vérifier ce lien il vous donnera des détails intéressants sur join order