Join Left, Right e Inner
Il negozio online ha ordinato più prodotti da un fornitore perché erano a corto di scorte. Questo significa che abbiamo un po' di tempo libero fino all'arrivo della spedizione.
Usiamo questa opportunità per imparare qualcosa di nuovo! Finora, hai utilizzato il JOIN
standard in SQL, ma ci sono altri tipi di join che puoi utilizzare.
Ecco i 4 principali tipi di join tra tabelle:
INNER JOIN
: Restituisce le righe con valori corrispondenti in entrambe le tabelle. Questo è lo stesso del JOIN standard che hai utilizzato;
LEFT JOIN
: Restituisce tutte le righe dalla tabella di sinistra e le righe corrispondenti dalla tabella di destra. Se non ci sono corrispondenze, restituisceNULL
per la tabella di destra;
RIGHT JOIN
: Restituisce tutte le righe dalla tabella di destra e le righe corrispondenti dalla tabella di sinistra. Se non ci sono corrispondenze, restituisceNULL
per la tabella di sinistra;
FULL JOIN
: Restituisce tutte le righe quando c'è una corrispondenza in una delle tabelle. Se non ci sono corrispondenze, restituisceNULL
per i valori mancanti nell'altra tabella.
Prima di immergerci nell'uso di questi join, diamo un'occhiata alle due tabelle con cui lavoreremo. Contengono dettagli sui corsi e sugli studenti iscritti a essi.
courses
:
enrollments
:
La sintassi per utilizzare questi tipi di join è in realtà semplice. Invece del familiare JOIN
o INNER JOIN
, specifica semplicemente LEFT JOIN
o qualsiasi altro tipo di JOIN
:
sql
Swipe to start coding
Scrivi una query per recuperare un elenco di tutti i corsi e gli studenti iscritti, inclusi i corsi senza studenti registrati.
Devi recuperare le seguenti colonne in questo ordine:
bash
Usa il tipo appropriato di JOIN
per risolvere questo compito!
Istruzioni Brevi
- Recupera le colonne
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
, eenrollments.enrollment_date
dalla tabellacourses
. - Usa un LEFT JOIN per unire la tabella
enrollments
. - La colonna comune per entrambe le tabelle è
courses.course_id = enrollments.course_id
.
Soluzione
Grazie per i tuoi commenti!