Articolo originale: SQL Outer Join Tutorial – With Example Syntax

Cos'è JOIN in SQL?

In SQL, JOIN viene usato per unire le righe di due o più tabelle, sulla base di una colonna condivisa tra loro.

Ci sono quattro diversi tipi di JOIN: INNER JOIN, LEFT JOIN, RIGHT JOIN, e FULL OUTER JOIN. In questo articolo, parleremo di FULL OUTER JOIN.

Cos'è un Full Outer Join in SQL?

Il FULL OUTER JOIN (anche noto come OUTER JOIN) è usato per ritornare tutti i record che presentano valori in una delle due tabelle, quella di sinistra o di destra.

Ad esempio, un full outer join tra una tabella di clienti e una tabella di ordini potrebbe restituire tutti i clienti, inclusi quella senza alcun ordine, così come tutti gli ordini. I clienti che hanno effettuato ordini sarebbero uniti ai loro ordini utilizzando il loro numero identificativo di cliente (id).

Un full outer join può restituire molti dati, quindi prima di utilizzarlo, considera se un metodo più conservativo potrebbe soddisfare le tue esigenze.

Dataset di Esempio

Immagina di insegnare ad un corso di Letteratura Americana. Hai dieci studenti, e vuoi che ognuno di loro legga un libro diverso da una lista di romanzi classici americani pre-approvati. Alcuni studenti hanno già scelto il libro che leggeranno, mentre altri non lo hanno ancora fatto.

Hai creato una tabella che elenca gli studenti insieme ai loro numeri di ID studente, e un'altra tabella che elenca i libri con il loro titolo, autore, ISBN, e l'ID dello studente che leggerà il libro, se qualcuno lo ha scelto.

Table with names of students and ID numbers
Tabella degli studenti
Table of books with isbn, id of student who will read it, title, and author
Tabella dei libri

Come fare un Outer Join in SQL

Per fare un outer join con il nostro dataset di esempio, potremmo utilizzare la seguente query:

SELECT students.name, books.title
FROM students
FULL OUTER JOIN books ON students.student_id=books.student_id;

In questo esempio, stiamo selezionando i nomi dalla tabella students e i titoli dei libri dalla tabella books. I record sono abbinati utilizzando la colonna student_id in entrambe le tabelle.

Ed ecco il risultato:

student names matched with books they are reading.
Nomi degli studenti abbinati ai libri che stanno leggendo

Con il full outer join, siamo in grado di vedere tutti gli studenti, inclusi quelli che non hanno ancora scelto un libro. Possiamo anche vedere tutti i libri, inclusi quelli che non sono ancora stati scelti.

Nel nostro esempio, potresti utilizzare questi dati per vedere chi deve ancora scegliere un libro e quali libri sono ancora disponibili per loro da scegliere.

Conclusione

Utilizzare un full outer join in SQL può aiutarti ad ottenere una visione completa dei dati da più tabelle correlate.

Ma tieni presente che con un grande set di dati, questa query può restituire una quantità di informazioni difficile da gestire, quindi usa questo potere con saggezza!