sql >> Databasteknik >  >> RDS >> SQLite

SQLite Left Join

Sammanfattning :i den här handledningen kommer du att lära dig hur du använder SQLite LEFT JOIN sats för att söka efter data från flera tabeller.

Introduktion till SQLite LEFT JOIN klausul

Liknar INNER JOIN satsen, LEFT JOIN sats är en valfri sats i SELECT påstående. Du använder LEFT JOIN klausul för att söka efter data från flera relaterade tabeller.

Anta att vi har två tabeller:A och B.

  • A har m- och f-kolumner.
  • B har n och f kolumner.

För att utföra koppling mellan A och B med LEFT JOIN klausul använder du följande uttalande:

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

Uttrycket A.f = B.f är ett villkorligt uttryck. Förutom likhetsoperatorn (=) kan du använda andra jämförelseoperatorer som större än (>), mindre än (<) etc.

Satsen returnerar en resultatuppsättning som inkluderar:

  1. Rader i tabell A (vänster tabell) som har motsvarande rader i tabell B.
  2. Rader i tabellen A-tabellen och raderna i tabellen B fyllda med NULL värden om raden från tabell A inte har några motsvarande rader i tabell B.

Med andra ord, alla rader i tabell A ingår i resultatuppsättningen oavsett om det finns matchande rader i tabell B eller inte.

Om du har en WHERE satsen i satsen, search_condition i WHERE satsen tillämpas efter matchningen av LEFT JOIN klausul slutförs.

Se följande illustration av LEFT JOIN klausul mellan A- och B-tabellerna.

Alla rader i tabell A ingår i resultatuppsättningen.

Eftersom den andra raden (a2,2) har inte en motsvarande rad i tabell B, LEFT JOIN klausul skapar en falsk rad fylld med NULL .

Följande Venn-diagram illustrerar LEFT JOIN klausul.

Det noteras att LEFT OUTER JOIN är detsamma som LEFT JOIN .

SQLite LEFT JOIN exempel

Vi kommer att använda artists och albums tabeller i exempeldatabasen för demonstration.

Ett album tillhör en artist. En artist kan dock ha noll eller fler album.

För att hitta artister som inte har några album genom att använda LEFT JOIN klausul väljer vi artister och deras motsvarande album. Om en artist inte har några album, värdet på AlbumId kolumnen är NULL.

För att först visa de artister som inte har några album har vi två val:

  • Använd först ORDER BY sats för att lista raderna vars AlbumId är NULL värden först.
  • Använd för det andra WHERE sats och IS NULL operatör för att bara lista artister som inte har några album.

Följande sats använder LEFT JOIN satsen 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)

Prova det

Följande sats använder LEFT JOIN sats 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)

Prova det

I den här handledningen har du lärt dig hur du använder SQLite LEFT JOIN sats för att söka efter data från flera tabeller.


  1. Hur fyller man i ListView med db i tillgångsmappen?

  2. Spåra databasändringar med hjälp av källkontroll för arbetsmapp

  3. Postgresql ändra kolumntyp från int till UUID

  4. ORA-00972 identifierare är för långt alias kolumnnamn