SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite Left Join

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:

  1. Righe nella tabella A (tabella a sinistra) che hanno righe corrispondenti nella tabella B.
  2. 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 cui AlbumId è NULL prima i valori.
  • In secondo luogo, usa WHERE clausola e IS 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.