La LEFT JOIN di PostgreSQL restituisce tutte le righe della tabella sul lato sinistro della join e le righe corrispondenti della tabella sul lato destro della join. Le righe per le quali non c’è una riga corrispondente sul lato destro, il set di risultati conterrà null. LEFT JOIN è anche conosciuto come LEFT OUTER JOIN.
Syntax:SELECT table1.column1, table1.column2, table2.column1, ....FROM table1 LEFT JOIN table2ON table1.matching_column = table2.matching_column;table1: First table.table2: Second tablematching_column: Column common to both the tables.
Analizziamo la sintassi di cui sopra:
- In primo luogo, usando l’istruzione SELECT specifichiamo le tabelle da cui vogliamo che i dati siano selezionati.
- In secondo luogo, specifichiamo la tabella principale.
- In terzo luogo, specifichiamo la tabella a cui si unisce la tabella principale.
Il seguente diagramma di Venn illustra il funzionamento della clausola LEFT JOIN di PostgreSQL:
Per il bene di questo articolo useremo il database di esempio del noleggio DVD, che è spiegato qui e può essere scaricato cliccando su questo link nei nostri esempi.
Ora, vediamo alcuni esempi.
Esempio 1:
Qui useremo la clausola LEFT JOIN per unire la tabella “film” alla tabella “inventario”.
SELECT film.film_id, film.title, inventory_idFROM filmLEFT JOIN inventory ON inventory.film_id = film.film_id;
Output:
Esempio 2:
Qui useremo la clausola LEFT JOIN per unire la tabella “film” alla tabella “inventario” e useremo la clausola WHERE per filtrare i film che non sono nell’inventario.
SELECT film.film_id, film.title, inventory_idFROM filmLEFT JOIN inventory ON inventory.film_id = film.film_idWHERE inventory.film_id IS NULL;
Output: