In SQL, sia LEFT JOIN che LEFT OUTER JOIN vengono utilizzati per combinare i dati di due o più tabelle basate su una colonna correlata, ma sono essenzialmente la stessa operazione e non vi è alcuna differenza pratica tra loro. La parola chiave OUTER è facoltativa nella maggior parte dei sistemi di database, compresi quelli più diffusi come MySQL, PostgreSQL e SQL Server.

Join sinistro o Join esterno sinistro
Partecipa a sinistra
UN SQL operazione che combina due tabelle, mostrando tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra. Se non c'è corrispondenza nella tabella di destra, viene visualizzata NULLO valori.
Sintassi
SELEZIONA * DA Tabella1
LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;
Unione esterna sinistra
Un'altra operazione SQL concettualmente identica a LEFT JOIN. Combina inoltre le tabelle, mostrando tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra. Se non c'è corrispondenza nella tabella di destra, vengono visualizzati valori NULL.
Sintassi
SELEZIONA * DA Tabella1
LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName;
LEFT JOIN e LEFT OUTER JOIN sono essenzialmente la stessa cosa in SQL. Entrambi combinano i dati di due tabelle, mostrando tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra. Se non c'è corrispondenza nella tabella giusta, visualizzano valori NULL. L'unica differenza è la terminologia: LEFT JOIN viene utilizzato in alcuni database come MySQL , mentre LEFT OUTER JOIN viene utilizzato in altri come SQL Server. In un modo più profondo System.out.print() utilizzato in Java, allo stesso tempo print utilizzato in Python ma entrambi riflettono lo stesso output. Quindi, è solo questione di quale termine preferisce il tuo sistema di database, ma il risultato è identico.
Prima di immergerci negli esempi creiamo i dati necessari per eseguire il Left external join e il left join.
Passaggio 1: creare un database
create database geeksforgeeks; use geeksforgeeks;>
Passaggio 2: crea una tabella denominata athelete
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Passaggio 3: inserire i valori nella tabella athelete
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);>
Passaggio 4: crea una tabella denominata Punti
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Passaggio 5: inserire i valori nella tabella Punti
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);>
Ora abbiamo creato con successo la tabella athelete e i punti per l'operazione di unione.
Esempio:
Utilizzando Left Outer Join, la query verrà eseguita.
Domanda
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produzione
Id annotazioni sugli stivali primaverili | Nome | Atleta NO | ID | Punto | IDatleta |
---|---|---|---|---|---|
1 | Abishik | 27 | 1 | 270 | 1 |
2 | Niyas | 27 matrice in Java | 2 | 297 | 2 |
3 | Giuseppe | 29 | 3 | 210 | 3 |
4 | Juan | 24 | 4 | 180 | 4 |
Esempio:
Utilizzando il Left Join, la query verrà eseguita.
Domanda
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produzione
Id | Nome | Atleta NO test del software | ID | Punto | IDatleta |
---|---|---|---|---|---|
1 | Abishik | 27 | 1 | 270 | 1 |
2 | Niyas | 27 | 2 funzione prototipo c++ | 297 | 2 |
3 | Giuseppe | 29 | 3 | 210 | 3 |
4 | Juan | 24 | 4 | 180 | 4 |
Conclusione
In SQL, LEFT JOIN e LEFT OUTER JOIN sono essenzialmente la stessa operazione, differendo solo nella terminologia. Entrambe le operazioni combinano i dati di due tabelle, visualizzando tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra mentre mostrano valori NULL per le righe non corrispondenti. Indipendentemente dal termine utilizzato nel sistema di database, il risultato rimane identico.
Domande frequenti su Left Join e Left Outer Join
D.1: C'è qualche differenza di prestazioni tra LEFT JOIN e LEFT OUTER JOIN?
Risposta:
No, non c'è differenza di prestazioni. Questi termini sono intercambiabili e l'ottimizzatore del database li gestisce allo stesso modo.
Q.2: Posso utilizzare LEFT JOIN o LEFT OUTER JOIN con più di due tabelle?
Risposta:
Sì, puoi utilizzare queste operazioni di unione con più tabelle estendendo la sintassi, specificando le condizioni di unione per ciascuna tabella.
Gioco piccione android
D.3: Tutti i sistemi di database supportano sia LEFT JOIN che LEFT OUTER JOIN?
Risposta:
I sistemi di database più diffusi, inclusi MySQL, PostgreSQL e SQL Server, supportano sia LEFT JOIN che LEFT OUTER JOIN. Tuttavia, è essenziale verificare la compatibilità della documentazione specifica del database.
D.4: Cosa succede se utilizzo LEFT JOIN o LEFT OUTER JOIN senza specificare una condizione di unione?
Risposta:
L'utilizzo di queste operazioni di unione senza una condizione di unione risulterà in un prodotto cartesiano, in cui ogni riga della tabella di sinistra viene combinata con ogni riga della tabella di destra, portando potenzialmente a un set di risultati ampio e inefficiente.
Q.5: Esistono altri tipi di join SQL?
Risposta:
Sì, SQL supporta vari tipi di join, inclusi INNER JOIN, RIGHT JOIN, FULL OUTER JOIN e CROSS JOIN, ciascuno con scopi diversi nella combinazione di dati da più tabelle.