PostgreSQL LEFT JOIN (Italiano)

Riepilogo: in questo tutorial, imparerai come usare la clausola PostgreSQLLEFT JOIN per selezionare i dati da più tabelle.

Introduzione alla clausola LEFT JOIN di PostgreSQL

Supponiamo di avere due tabelle:A eB.,

Ogni riga della tabella A può avere zero o molte righe corrispondenti della tabella B mentre ogni riga della tabella B ha una e una sola riga corrispondente nella tabella A .

Per selezionare i dati dalla tabella A che possono avere o meno righe corrispondenti nella tabella B , si utilizza la clausola LEFT JOIN.,

L’istruzione seguente illustra il LEFT JOIN sintassi che si unisce al tavolo A con la tabella B :

Code language: SQL (Structured Query Language) (sql)

Per aderire al tavolo A con la tabella B tabella utilizzando un left join, attenersi alla seguente procedura:

  • Primo, specificare le colonne in entrambe le tabelle da cui si desidera selezionare i dati nel SELECT clausola.
  • In secondo luogo, specificare la tabella di sinistra (tabellaA) nella clausolaFROM.,
  • In terzo luogo, specificare la tabella corretta (table B) nella clausola LEFT JOIN e la condizione join dopo la parola chiave ON.

La clausola LEFT JOIN inizia a selezionare i dati dalla tabella di sinistra. Per ogni riga nella tabella di sinistra, confronta il valore nella colonnapka con il valore di ogni riga nella colonnafka nella tabella di destra.,

Se questi valori sono uguali, la clausola left join crea una nuova riga che contiene colonne che appaiono nella clausola SELECT e aggiunge questa riga al set di risultati.

Nel caso in cui questi valori non siano uguali, la clausola left join crea anche una nuova riga che contiene colonne che appaiono nella clausola SELECT. Inoltre, riempie le colonne che provengono dalla tabella destra con NULL.,

Il seguente diagramma di Venn illustra come il LEFT JOIN clausola funziona:

Nota che il LEFT JOIN è indicato anche come LEFT OUTER JOIN.

PostgreSQL LEFT JOIN examples

Diamo un’occhiata alle seguenti tabellefilm einventory dal database di esempio.,

Ogni riga film tabella può avere zero o più righe nel inventorytabella. Ogni riga nella tabellainventory ha una e una sola riga nella tabellafilm.

La colonna film_id stabilisce il collegamento tra le tabelle film e inventory.,

La seguente dichiarazione utilizza il LEFT JOIN clausola join film tabella con i inventorytabella:

Quando una riga film tabella non ha una riga corrispondente nel inventorytabella, il valore del tag inventory_id colonna della riga NULL.,

La seguente istruzione aggiunge una clausola WHERE per trovare i film che non sono nell’inventario:

La seguente istruzione restituisce lo stesso risultato., La differenza è che usa l’alias di tabella per rendere la query più conciso:

Se le due tabelle hanno lo stesso nome di colonna utilizzati nel ON clausola, è possibile utilizzare i tag USING sintassi simile a questa:

Questa tecnica è utile quando si desidera selezionare le righe da una tabella che non hanno corrispondenti righe di un’altra tabella.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Vai alla barra degli strumenti