logo

SQL Left Outer Join e Left Join

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.

Unisciti a sinistra

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.