sql >> Databáze >  >> RDS >> SQLite

SQLite levé připojení

Shrnutí :v tomto tutoriálu se naučíte používat SQLite LEFT JOIN klauzule k dotazování na data z více tabulek.

Úvod do SQLite LEFT JOIN klauzule

Podobné jako INNER JOIN klauzule LEFT JOIN klauzule je volitelná klauzule SELECT prohlášení. Používáte LEFT JOIN klauzule k dotazování na data z více souvisejících tabulek.

Předpokládejme, že máme dvě tabulky:A a B.

  • A má sloupce maf.
  • B má n a f sloupců.

Chcete-li provést spojení mezi A a B pomocí LEFT JOIN klauzule, použijete následující příkaz:

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

Výraz A.f = B.f je podmíněný výraz. Kromě operátoru rovnosti (=) můžete použít další operátory porovnání, například větší než (>), menší než (<) atd.

Příkaz vrátí sadu výsledků, která obsahuje:

  1. Řádky v tabulce A (levá tabulka), které mají odpovídající řádky v tabulce B.
  2. Řádky v tabulce tabulky A a řádky v tabulce B vyplněné NULL hodnoty v případě, že řádek z tabulky A nemá žádné odpovídající řádky v tabulce B.

Jinými slovy, všechny řádky v tabulce A jsou zahrnuty do sady výsledků, ať už existují odpovídající řádky v tabulce B nebo ne.

V případě, že máte WHERE klauzule v příkazu, search_condition v WHERE klauzule se použije po shodě LEFT JOIN klauzule se dokončí.

Viz následující obrázek LEFT JOIN klauzule mezi tabulkami A a B.

Všechny řádky v tabulce A jsou zahrnuty do sady výsledků.

Protože druhý řádek (a2,2) nemá odpovídající řádek v tabulce B, LEFT JOIN klauzule vytvoří falešný řádek vyplněno NULL .

Následující Vennův diagram znázorňuje LEFT JOIN doložka.

Je třeba poznamenat, že LEFT OUTER JOIN je stejné jako LEFT JOIN .

SQLite LEFT JOIN příklady

Použijeme artists a albums tabulky ve vzorové databázi pro demonstraci.

Jedno album patří jednomu interpretovi. Jeden interpret však může mít nula nebo více alb.

Chcete-li najít umělce, kteří nemají žádná alba, použijte LEFT JOIN klauzule, vybereme umělce a jejich odpovídající alba. Pokud interpret nemá žádná alba, hodnota AlbumId sloupec je NULL.

Chcete-li nejprve zobrazit umělce, kteří nemají žádná alba, máme dvě možnosti:

  • Nejprve použijte ORDER BY klauzule pro seznam řádků, jejichž AlbumId je NULL hodnoty jako první.
  • Zadruhé použijte WHERE klauzule a IS NULL operátora, aby uvedl pouze umělce, kteří nemají žádná alba.

Následující příkaz používá LEFT JOIN klauzule s ORDER BY doložka.

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

Zkuste to

Následující příkaz používá LEFT JOIN klauzule s WHERE doložka.

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)

Zkuste to

V tomto tutoriálu jste se naučili používat SQLite LEFT JOIN klauzule k dotazování na data z více tabulek.


  1. Použijte TYPE_NAME() k získání názvu datového typu na serveru SQL

  2. SQL Server:Extrahujte metadata tabulky (popis, pole a jejich datové typy)

  3. MIN a MAX agregační funkce v SQL Server

  4. ORA-01034:ORACLE není k dispozici ORA-27101:sféra sdílené paměti neexistuje