En SQL, LEFT JOIN et LEFT OUTER JOIN sont utilisés pour combiner les données de deux ou plusieurs tables basées sur une colonne associée, mais il s'agit essentiellement de la même opération et il n'y a aucune différence pratique entre elles. Le mot-clé OUTER est facultatif dans la plupart des systèmes de bases de données, y compris les plus populaires comme MySQL, PostgreSQL et SQL Server.

Jointure gauche ou jointure externe gauche
Joint gauche
UN SQL opération qui combine deux tableaux, affichant toutes les lignes du tableau de gauche et les lignes correspondantes du tableau de droite. S'il n'y a aucune correspondance dans le tableau de droite, il affiche NUL valeurs.
Syntaxe
SELECT * FROM Tableau1
LEFT JOIN Table2 ON Table1.columnName = Table2.columnName ;
Jointure externe gauche
Une autre opération SQL conceptuellement identique à LEFT JOIN. Il combine également des tableaux, affichant toutes les lignes du tableau de gauche et les lignes correspondantes du tableau de droite. S'il n'y a aucune correspondance dans le tableau de droite, il affiche les valeurs NULL.
Syntaxe
SELECT * FROM Tableau1
LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName ;
LEFT JOIN et LEFT OUTER JOIN sont essentiellement la même chose en SQL. Ils combinent tous deux les données de deux tableaux, affichant toutes les lignes du tableau de gauche et les lignes correspondantes du tableau de droite. S'il n'y a pas de correspondance dans le tableau de droite, ils affichent des valeurs NULL. La seule différence est la terminologie : LEFT JOIN est utilisé dans certaines bases de données comme MySQL , tandis que LEFT OUTER JOIN est utilisé dans d'autres comme SQL Server. De manière plus approfondie, System.out.print() utilisé en Java, en même temps print utilisé en python mais les deux reflètent le même résultat. Il s’agit donc simplement de savoir quel terme votre système de base de données préfère, mais le résultat est identique.
barre d'outils d'accès rapide aux mots
Avant de plonger dans les exemples, créons les données nécessaires pour effectuer la jointure externe gauche et la jointure gauche.
Étape 1 : Créer une base de données
create database geeksforgeeks; use geeksforgeeks;>
Étape 2 : Créez une table nommée athlète
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Étape 3 : Insérer des valeurs dans le tableau athlète
INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (1, 'abisheik', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (2, 'Niyas', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (3, 'Joseph', 29); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (4, 'Juan', 24);>
Étape 4 : Créez un tableau nommé Points
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Étape 5 : Insérer des valeurs dans le tableau Points
INSERT INTO Points (ID, Score, AtheleteID) VALUES (1, 270, 1); INSERT INTO Points (ID, Score, AtheleteID) VALUES (2, 297, 2); INSERT INTO Points (ID, Score, AtheleteID) VALUES (3, 210, 3); INSERT INTO Points (ID, Score, AtheleteID) VALUES (4, 180, 4);>
Maintenant, nous avons créé avec succès la table athelete et Points pour l’opération de jointure.
Exemple:
En utilisant la jointure externe gauche, la requête sera exécutée.
Requête
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Sortir
Identifiant | Nom | Athlète NON | IDENTIFIANT | Score | ID d'athlète |
---|---|---|---|---|---|
1 | Abishek | 27 | 1 | 270 | 1 |
2 | Nias | 27 | 2 | 297 | 2 |
3 | Joseph | 29 | 3 | 210 scanner java suivant | 3 |
4 | Juan | 24 | 4 | 180 | 4 |
Exemple:
En utilisant la jointure gauche, la requête sera exécutée.
Requête
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Sortir
Identifiant | Nom | Athlète NON | IDENTIFIANT | Score | ID d'athlète |
---|---|---|---|---|---|
1 | Abishek | 27 chaîne comparable | 1 | 270 | 1 |
2 | Nias | 27 | 2 | 297 | 2 |
3 | Joseph bfs et dfs | 29 | 3 | 210 | 3 |
4 | Juan | 24 | 4 | 180 | 4 |
Conclusion
En SQL, LEFT JOIN et LEFT OUTER JOIN sont essentiellement la même opération, ne différant que par la terminologie. Les deux opérations combinent les données de deux tables, affichant toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite tout en affichant les valeurs NULL pour les lignes non correspondantes. Quel que soit le terme utilisé dans votre système de base de données, le résultat reste identique.
FAQ sur la jointure gauche et la jointure externe gauche
Q.1 : Y a-t-il une différence de performances entre LEFT JOIN et LEFT OUTER JOIN ?
Répondre:
Non, il n'y a aucune différence de performances. Ces termes sont interchangeables et l'optimiseur de base de données les traite de la même manière.
Q.2 : Puis-je utiliser LEFT JOIN ou LEFT OUTER JOIN avec plus de deux tables ?
Répondre:
Oui, vous pouvez utiliser ces opérations de jointure avec plusieurs tables en étendant la syntaxe et en spécifiant les conditions de jointure pour chaque table.
Q.3 : Tous les systèmes de bases de données prennent-ils en charge à la fois LEFT JOIN et LEFT OUTER JOIN ?
Répondre:
Les systèmes de bases de données les plus largement utilisés, notamment MySQL, PostgreSQL et SQL Server, prennent en charge à la fois LEFT JOIN et LEFT OUTER JOIN. Cependant, il est essentiel de vérifier la compatibilité de la documentation spécifique de votre base de données.
Q.4 : Que se passe-t-il si j'utilise LEFT JOIN ou LEFT OUTER JOIN sans spécifier de condition de jointure ?
Répondre:
L'utilisation de ces opérations de jointure sans condition de jointure entraînera un produit cartésien, dans lequel chaque ligne de la table de gauche est combinée avec chaque ligne de la table de droite, conduisant potentiellement à un ensemble de résultats volumineux et inefficace.
Q.5 : Existe-t-il d'autres types de jointures SQL ?
Répondre:
Oui, SQL prend en charge différents types de jointures, notamment INNER JOIN, RIGHT JOIN, FULL OUTER JOIN et CROSS JOIN, chacune servant à des fins différentes en combinant les données de plusieurs tables.