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

SQLite Venstre Join

Oversigt :i denne vejledning lærer du, hvordan du bruger SQLite LEFT JOIN klausul for at forespørge data fra flere tabeller.

Introduktion til SQLite LEFT JOIN klausul

Svarende til INNER JOIN klausulen, LEFT JOIN klausul er en valgfri klausul af SELECT udmelding. Du bruger LEFT JOIN klausul for at forespørge data fra flere relaterede tabeller.

Antag, at vi har to tabeller:A og B.

  • A har m- og f-kolonner.
  • B har n og f kolonner.

For at udføre joinforbindelse mellem A og B ved hjælp af LEFT JOIN klausul, bruger du følgende sætning:

SELECT
	a,
	b
FROM
	A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;Code language: SQL (Structured Query Language) (sql)

Udtrykket A.f = B.f er et betinget udtryk. Udover lighedsoperatoren (=) kan du bruge andre sammenligningsoperatorer såsom større end (>), mindre end (<) osv.

Udsagnet returnerer et resultatsæt, der inkluderer:

  1. Rækker i tabel A (venstre tabel), der har tilsvarende rækker i tabel B.
  2. Rækker i tabel A-tabellen og rækker i tabel B fyldt med NULL værdier i tilfælde af, at rækken fra tabel A ikke har nogen tilsvarende rækker i tabel B.

Med andre ord er alle rækker i tabel A inkluderet i resultatsættet, uanset om der er matchende rækker i tabel B eller ej.

Hvis du har en WHERE klausul i sætningen, search_condition i WHERE klausulen anvendes efter matchningen af ​​LEFT JOIN klausul afsluttes.

Se følgende illustration af LEFT JOIN klausul mellem A- og B-tabellerne.

Alle rækker i tabel A er inkluderet i resultatsættet.

Fordi den anden række (a2,2) har ikke en tilsvarende række i tabel B, LEFT JOIN klausul opretter en falsk række udfyldt med NULL .

Følgende Venn-diagram illustrerer LEFT JOIN klausul.

Det bemærkes, at LEFT OUTER JOIN er det samme som LEFT JOIN .

SQLite LEFT JOIN eksempler

Vi vil bruge artists og albums tabeller i eksempeldatabasen til demonstration.

Et album tilhører én kunstner. En kunstner kan dog have nul eller flere album.

For at finde kunstnere, der ikke har nogen album, ved at bruge LEFT JOIN klausul, vælger vi kunstnere og deres tilsvarende album. Hvis en kunstner ikke har nogen album, værdien af ​​AlbumId kolonnen er NULL.

For at vise de kunstnere, der ikke har nogen album først, har vi to valgmuligheder:

  • Brug først ORDER BY klausul for at liste de rækker, hvis AlbumId er NULL værdier først.
  • For det andet skal du bruge WHERE klausul og IS NULL operatør for kun at vise kunstnere, der ikke har nogen album.

Følgende sætning bruger LEFT JOIN klausul med ORDER BY klausul.

SELECT
   artists.ArtistId, 
   AlbumId
FROM
   artists
LEFT JOIN albums ON
   albums.ArtistId = artists.ArtistId
ORDER BY
   AlbumId;Code language: SQL (Structured Query Language) (sql)

Prøv det

Følgende sætning bruger LEFT JOIN klausul med WHERE klausul.

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)

Prøv det

I denne tutorial har du lært, hvordan du bruger SQLite LEFT JOIN klausul for at forespørge data fra flere tabeller.


  1. DBTIMEZONE-funktion i Oracle

  2. Sådan implementerer du meget tilgængelig PostgreSQL med Single Endpoint til WordPress

  3. Hvordan bruger man RETURNING med ON CONFLICT i PostgreSQL?

  4. Frisørsalonens databaseprojekt