PostgreSQL Unisci i tipi con esempi: Interno, Esterno, Sinistra, Destra

Cosa sono i Join? PostgreSQL?

PostgreSQL Entra a far parte vengono utilizzati per recuperare dati da più di una tabella. Con i Join è possibile combinare le istruzioni SELECT e JOIN in un'unica istruzione. All'istruzione viene aggiunta una condizione JOIN e vengono restituite tutte le righe che soddisfano le condizioni. I valori di tabelle diverse vengono combinati in base a colonne comuni. La colonna comune è principalmente una chiave primaria nella prima tabella e una chiave esterna nella seconda tabella.

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:

PostgreSQL Theta Partecipa

Prezzo:

PostgreSQL Theta Partecipa

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:

PostgreSQL Theta Partecipa

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:

PostgreSQL EQUI Partecipa

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:

PostgreSQL unione naturale

È 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.

Join esterno di Postgres

Sono disponibili 3 tipi di Outer Join PostgreSQL:

  • Join esterno sinistro
  • Giunto esterno destro
  • Join esterno completo

Postgres Left Outer Join

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:

Postgres Left Outer Join

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.

Postgres Right Outer Join

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:

Postgres Right Outer Join

Sono state restituite tutte le righe nella tabella Prezzo. Sono state restituite solo le righe nella tabella Book che soddisfacevano la condizione di unione. Il 3rd la 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:

Join esterno completo di Postgres

Sono state restituite tutte le righe di tutte le tabelle, con valori null dove non è stata trovata alcuna corrispondenza.

Utilizzando pgAdmin

Le attività di cui sopra possono essere eseguite in pgAdmin come segue:

pgAdmin Partecipazione interna

Come utilizzare Theta Partecipa PostgreSQL utilizzando pgAdmin

Di seguito sono riportati i passaggi per utilizzare Theta Join in Postgres utilizzando pgAdmin:

Passaggio 1) Accedi al tuo account pgAdmin

Apri pgAdmin e accedi utilizzando le tue credenziali

Passaggio 2) Creare un database demo

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

pgAdmin Partecipazione interna

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

pgAdmin Partecipazione interna

Dovrebbe restituire quanto segue:

pgAdmin Partecipazione interna

EQUI Partecipa

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

pgAdmin EQUI Partecipa

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.

pgAdmin EQUI Partecipa

Dovrebbe restituire quanto segue:

pgAdmin EQUI Partecipa

unione naturale

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

pgAdmin Partecipazione naturale

Passo 3) Digita la query nell'editor di query:

SELECT *
FROM Book 
NATURAL JOIN Price;

Passo 4) Fare clic sul pulsante Esegui.

pgAdmin Partecipazione naturale

Dovrebbe restituire quanto segue:

pgAdmin Partecipazione naturale

pgAdmin Join interno semplice

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

pgAdmin Join interno semplice

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.

pgAdmin Join interno semplice

Dovrebbe restituire quanto segue:

pgAdmin Join interno semplice

pgAdmin Join esterno

Join esterno sinistro

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

pgAdmin Join esterno sinistro

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.

pgAdmin Join esterno sinistro

Dovrebbe restituire quanto segue:

pgAdmin Join esterno sinistro

Giunto esterno destro

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

pgAdmin Join esterno destro

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.

pgAdmin Join esterno destro

Dovrebbe restituire quanto segue:

pgAdmin Join esterno destro

Join esterno completo

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

pgAdmin Join esterno completo

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.

pgAdmin Join esterno completo

Dovrebbe restituire quanto segue:

pgAdmin Join esterno completo

Sommario

  • In PostgreSQL, utilizziamo JOIN quando dobbiamo recuperare valori da più di una tabella.
  • L'INNER JOIN è il tipo più elementare di JOIN. Restituisce tutti i record in cui è stata soddisfatta la condizione JOIN specificata.
  • Il LEFT OUTER JOIN restituisce tutte le righe nella tabella di sinistra e solo le righe nell'altra tabella in cui la condizione di join è stata soddisfatta.
  • Il RIGHT OUTER JOIN restituisce tutte le righe nella tabella di destra e solo le righe nell'altra tabella in cui la condizione di join è stata soddisfatta.
  • Questo tipo di JOIN restituisce tutte le righe nella tabella di sinistra e tutte le righe nella tabella di destra con valori null in cui la condizione di join non è soddisfatta.

Scarica il database utilizzato in questo tutorial