En SQL, tant LEFT JOIN com LEFT OUTER JOIN s'utilitzen per combinar dades de dues o més taules basades en una columna relacionada, però són essencialment la mateixa operació i no hi ha cap diferència pràctica entre elles. La paraula clau OUTER és opcional a la majoria de sistemes de bases de dades, inclosos els populars com MySQL, PostgreSQL i SQL Server.

Unió esquerra o unió exterior esquerra
Uneix-te a l'esquerra
A SQL operació que combina dues taules, mostrant totes les files de la taula de l'esquerra i les files coincidents de la taula dreta. Si no hi ha cap coincidència a la taula dreta, es mostra NUL valors.
Sintaxi
SELECCIONA * DE LA Taula 1
LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;
Unió exterior esquerra
Una altra operació SQL que és conceptualment idèntica a LEFT JOIN. També combina taules, mostrant totes les files de la taula de l'esquerra i les files coincidents de la taula dreta. Si no hi ha cap coincidència a la taula dreta, mostra valors NULL.
Sintaxi
SELECCIONA * DE LA Taula 1
LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName;
commutador java
LEFT JOIN i LEFT OUTER JOIN són essencialment el mateix a SQL. Tots dos combinen dades de dues taules, mostrant totes les files de la taula de l'esquerra i les files coincidents de la taula de la dreta. Si no hi ha cap coincidència a la taula correcta, mostren valors NULL. L'única diferència és la terminologia: LEFT JOIN s'utilitza en algunes bases de dades com MySQL , mentre que LEFT OUTER JOIN s'utilitza en altres com SQL Server. D'una manera més profunda, System.out.print() s'utilitza a Java, al mateix temps print s'utilitza a Python, però tots dos reflecteixen la mateixa sortida. Per tant, només és qüestió de quin terme prefereix el vostre sistema de bases de dades, però el resultat és idèntic.
Abans d'endinsar-nos en els exemples, creem les dades necessàries per realitzar la unió exterior esquerra i la unió esquerra.
Pas 1: creeu una base de dades
create database geeksforgeeks; use geeksforgeeks;>
Pas 2: creeu una taula anomenada athelete
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Pas 3: inseriu valors a l'atleta de taula
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);>
Pas 4: creeu una taula anomenada Punts
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Pas 5: inseriu valors a la taula Punts
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);>
Ara, hem creat amb èxit l'atleta de taula i els punts per a l'operació d'unions.
Exemple:
Mitjançant l'ús de Left Outer Join, la consulta s'executarà.
Consulta
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Sortida
Id | Nom | Atleta NO | ID | Puntuació | AtheleteID |
---|---|---|---|---|---|
1 | Abixeik | 27 | 1 | 270 | 1 |
2 | Niyas | 27 | 2 | 297 | 2 |
3 | Josep instal·lació de la torxa | 29 | 3 | 210 | 3 |
4 | Joan | 24 | 4 | 180 | 4 |
Exemple:
Mitjançant l'opció Left Join, la consulta s'executarà.
Consulta
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Sortida
Id | Nom | Atleta NO | ID | Puntuació | AtheleteID |
---|---|---|---|---|---|
1 | Abixeik | 27 | 1 | 270 | 1 |
2 | Niyas | 27 | 2 | 297 | 2 |
3 | Josep error: no s'ha pogut trobar ni carregar la classe principal | 29 | 3 | 210 | 3 |
4 | Joan | 24 | 4 | 180 | 4 |
Conclusió
En SQL, LEFT JOIN i LEFT OUTER JOIN són essencialment la mateixa operació, però només es diferencien en terminologia. Ambdues operacions combinen dades de dues taules, mostrant totes les files de la taula de l'esquerra i les files coincidents de la taula dreta mentre mostren valors NULL per a les files que no coincideixen. Independentment del terme utilitzat al vostre sistema de bases de dades, el resultat segueix sent idèntic.
Preguntes freqüents sobre unió esquerra i unió exterior esquerra
P.1: Hi ha alguna diferència de rendiment entre LEFT JOIN i LEFT OUTER JOIN?
Resposta:
No, no hi ha cap diferència de rendiment. Aquests termes són intercanviables i l'optimitzador de bases de dades els gestiona de la mateixa manera.
P.2: Puc utilitzar LEFT JOIN o LEFT OUTER JOIN amb més de dues taules?
Resposta:
Sí, podeu utilitzar aquestes operacions d'unió amb diverses taules ampliant la sintaxi i especificant les condicions d'unió per a cada taula.
P.3: Tots els sistemes de bases de dades admeten tant LEFT JOIN com LEFT OUTER JOIN?
Resposta:
Els sistemes de bases de dades més utilitzats, inclosos MySQL, PostgreSQL i SQL Server, admeten tant LEFT JOIN com LEFT OUTER JOIN. Tanmateix, és essencial comprovar la compatibilitat de la documentació específica de la vostra base de dades.
P.4: Què passa si faig servir LEFT JOIN o LEFT OUTER JOIN sense especificar una condició d'unió?
Resposta:
L'ús d'aquestes operacions d'unió sense una condició d'unió donarà lloc a un producte cartesià, on cada fila de la taula de l'esquerra es combina amb cada fila de la taula de la dreta, la qual cosa pot conduir a un conjunt de resultats gran i ineficient.
P.5: Hi ha altres tipus d'unions SQL?
Resposta:
Sí, SQL admet diversos tipus d'unions, com ara INNER JOIN, RIGHT JOIN, FULL OUTER JOIN i CROSS JOIN, cadascuna amb finalitats diferents en combinar dades de diverses taules.