Riepilogo :in questo tutorial imparerai come usare SQLite LEFT JOIN
clausola per interrogare i dati da più tabelle.
Introduzione a SQLite LEFT JOIN
clausola
Simile a INNER JOIN
clausola, il LEFT JOIN
è una clausola facoltativa di SELECT
dichiarazione. Usa il LEFT JOIN
clausola per interrogare i dati da più tabelle correlate.
Supponiamo di avere due tabelle:A e B.
- A ha colonne m e f.
- B ha n e f colonne.
Per eseguire l'unione tra A e B utilizzando LEFT JOIN
clausola, utilizzi la seguente istruzione:
SELECT
a,
b
FROM
A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
L'espressione A.f = B.f
è un'espressione condizionale. Oltre all'operatore di uguaglianza (=), puoi utilizzare altri operatori di confronto come maggiore di (>), minore di (<), ecc.
L'istruzione restituisce un set di risultati che include:
- Righe nella tabella A (tabella a sinistra) che hanno righe corrispondenti nella tabella B.
- Righe nella tabella A tabella e le righe nella tabella B riempite con
NULL
valori nel caso in cui la riga della tabella A non abbia righe corrispondenti nella tabella B.
In altre parole, tutte le righe nella tabella A sono incluse nel set di risultati indipendentemente dal fatto che ci siano righe corrispondenti nella tabella B o meno.
Nel caso tu abbia un WHERE
clausola nell'istruzione, la search_condition
nel WHERE
si applica dopo la corrispondenza del LEFT JOIN
clausola completata.
Vedi la seguente illustrazione del LEFT JOIN
clausola tra le tabelle A e B.
Tutte le righe della tabella A sono incluse nel set di risultati.
Perché la seconda riga (a2,2)
non ha una riga corrispondente nella tabella B, il LEFT JOIN
La clausola crea una riga falsa riempito con NULL
.
Il seguente diagramma di Venn illustra il LEFT JOIN
clausola.
Si noti che LEFT OUTER JOIN
è lo stesso di LEFT JOIN
.
SQLite LEFT JOIN
esempi
Useremo gli artists
e albums
tabelle nel database di esempio per la dimostrazione.
Un album appartiene a un artista. Tuttavia, un artista può avere zero o più album.
Per trovare artisti che non hanno album utilizzando il LEFT JOIN
clausola, selezioniamo gli artisti e i loro album corrispondenti. Se un artista non ha album, il valore di AlbumId
la colonna è NULL.
Per visualizzare prima gli artisti che non hanno album, abbiamo due scelte:
- In primo luogo, usa
ORDER BY
clausola per elencare le righe il cuiAlbumId
èNULL
prima i valori. - In secondo luogo, usa
WHERE
clausola eIS NULL
operatore per elencare solo gli artisti che non hanno album.
La seguente istruzione usa il LEFT JOIN
clausola con ORDER BY
clausola.
SELECT
artists.ArtistId,
AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
ORDER BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
Provalo
La seguente istruzione usa il LEFT JOIN
clausola con WHERE
clausola.
SELECT
artists.ArtistId
, AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
WHERE
AlbumId IS NULL;
Code language: SQL (Structured Query Language) (sql)
Provalo
In questo tutorial, hai imparato a usare SQLite LEFT JOIN
clausola per interrogare i dati da più tabelle.