PostgreSQL Tipi di giunzione: interna, esterna, sinistra, destra
โก Riepilogo intelligente
PostgreSQL Le join recuperano e combinano righe da due o piรน tabelle utilizzando una chiave condivisa e includono join interne come theta, EQUI e natural, oltre a join esterne che coprono i risultati a sinistra, a destra e completi.

Cosa sono i Join? PostgreSQL?
PostgreSQL Entra a far parte Le join vengono utilizzate per recuperare dati da piรน tabelle. Con le join, รจ possibile combinare le istruzioni SELECT e JOIN in un'unica istruzione. Viene aggiunta una condizione JOIN all'istruzione e vengono restituite tutte le righe che soddisfano tale condizione. I valori provenienti da tabelle diverse vengono combinati in base a colonne comuni. La colonna comune รจ solitamente una chiave primaria nella prima tabella e una chiave esterna nella seconda.
PostgreSQL Unisciti ai tipi
Sono disponibili due tipi di join PostgreSQL:
- giunzioni interne
- Unioni esterne
PostgreSQL unione interna
Sono disponibili 3 tipi di inner join PostgreSQL:
- Partecipazione theta
- Unione naturale
- Aderisci all'EQUI
Theta Partecipa
Un theta join consente di unire due tabelle in base alla condizione rappresentata da theta. I join theta possono funzionare con tutti gli operatori di confronto. Nella maggior parte dei casi, il theta join viene definito inner join.
Il theta join รจ il tipo piรน semplice di JOIN. Restituirร tutte le righe delle tabelle in cui la condizione JOIN รจ soddisfatta.
Sintassi:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Consideriamo le seguenti tabelle del database Demo:
Libro:
Prezzo:
Vogliamo vedere il nome di ogni libro e il prezzo corrispondente. Possiamo eseguire il seguente comando:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Verrร restituito quanto segue:
Solo 3 righe soddisfacevano la condizione di unione.
EQUI Partecipa
L'unione EQUI ci fornisce un modo per unire due tabelle in base alla relazione chiave primaria/chiave esterna. Per esempio:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Verrร restituito quanto segue:
I record sono stati restituiti da entrambe le tabelle in base alle colonne comuni, ovvero la colonna id.
unione naturale
Questo tipo di join ci fornisce un altro modo di scrivere un join EQUI. Possiamo migliorare il nostro esempio precedente aggiungendo la parola chiave NATURAL come mostrato di seguito:
SELECT * FROM Book NATURAL JOIN Price;
Verrร restituito quanto segue:
ร stata restituita solo una colonna ID. Il NATURAL JOIN ha potuto notare che la colonna id รจ comune nelle due tabelle. Ne รจ stato restituito solo uno.
PostgreSQL unione esterna
Sono disponibili 3 tipi di Outer Join PostgreSQL:
- Join esterno sinistro
- Giunto esterno destro
- Join esterno completo
PostgreSQL Join esterno sinistro
Il LEFT OUTER JOIN restituirร tutte le righe nella tabella sul lato sinistro e solo le righe nella tabella sul lato destro in cui la condizione di join รจ stata soddisfatta.
Sintassi:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Dobbiamo vedere il nome di ogni libro e il prezzo corrispondente. Possiamo eseguire il seguente comando:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Questo restituisce quanto segue:
Sono state restituite tutte e 4 le righe della tabella Book. Solo 3 righe della tabella dei prezzi soddisfano la condizione di unione. Quindi sono stati restituiti. L'ultimo libro non ha un valore di prezzo corrispondente.
PostgreSQL Giunto esterno destro
Il RIGHT OUTER JOIN restituisce tutte le righe nella tabella sul lato destro e le righe nella tabella sul lato sinistro in cui la condizione di join รจ stata soddisfatta.
Sintassi:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Per esempio:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Questo restituisce quanto segue:
Sono state restituite tutte le righe della tabella Prezzo. Sono state restituite solo le righe della tabella Libro che soddisfacevano la condizione di join. La terza riga non ha alcun valore per il nome poichรฉ non รจ stata trovata alcuna corrispondenza.
Partecipazione esterna completa PostgreSQL
Questo tipo di JOIN restituirร tutte le righe nella tabella sul lato sinistro e tutte le righe nella tabella sul lato destro con valori null dove la condizione di join non รจ soddisfatta.
Sintassi:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Per esempio:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Questo restituisce quanto segue:
Sono state restituite tutte le righe di tutte le tabelle, con valori null dove non รจ stata trovata alcuna corrispondenza.
Utilizzando pgAdmin
Le operazioni sopra descritte possono essere eseguite in pgAdmin nel modo seguente. Le sezioni successive illustrano passo passo ciascun tipo di join.
pgAdmin Partecipazione interna
I passaggi seguenti mostrano come eseguire ciascuna variante di inner join in pgAdmin.
Come utilizzare Theta Partecipa PostgreSQL utilizzando pgAdmin
Di seguito sono riportati i passaggi per utilizzare Theta Join in PostgreSQL utilizzando pgAdmin:
Passaggio 1) Accedi al tuo account pgAdmin
Apri pgAdmin e accedi utilizzando le tue credenziali
Passaggio 2) Creare un database demo
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passaggio 3) Digitare la query
Digita la query seguente nell'editor di query:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Passaggio 4) Eseguire la query
Fare clic sul pulsante Esegui
Dovrebbe restituire quanto segue:
EQUI Partecipa
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
unione naturale
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT * FROM Book NATURAL JOIN Price;
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
pgAdmin Join interno semplice
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
pgAdmin Join esterno
Successivamente, esegui le tre varianti di outer join in pgAdmin seguendo i passaggi descritti di seguito.
Join esterno sinistro
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
Giunto esterno destro
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
Join esterno completo
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
Scarica il database utilizzato in questo tutorial





























