sql >> Database >  >> RDS >> SQLite

SQLite Linker Join

Samenvatting :in deze tutorial leer je hoe je SQLite LEFT JOIN gebruikt clausule om gegevens uit meerdere tabellen op te vragen.

Inleiding tot SQLite LEFT JOIN clausule

Gelijk aan de INNER JOIN clausule, de LEFT JOIN clausule is een optionele clausule van de SELECT uitspraak. Je gebruikt de LEFT JOIN clausule om gegevens uit meerdere gerelateerde tabellen op te vragen.

Stel dat we twee tabellen hebben:A en B.

  • A heeft m- en f-kolommen.
  • B heeft n en f kolommen.

Om een ​​verbinding tussen A en B uit te voeren met LEFT JOIN clausule, gebruik je de volgende verklaring:

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

De uitdrukking A.f = B.f is een voorwaardelijke uitdrukking. Naast de gelijkheidsoperator (=) kun je andere vergelijkingsoperatoren gebruiken, zoals groter dan (>), kleiner dan (<), enz.

De instructie retourneert een resultatenset die bestaat uit:

  1. Rijen in tabel A (linker tabel) die corresponderende rijen hebben in tabel B.
  2. Rijen in de tabel A en de rijen in tabel B gevuld met NULL waarden in het geval de rij uit tabel A geen overeenkomstige rijen heeft in tabel B.

Met andere woorden, alle rijen in tabel A worden opgenomen in de resultatenset, ongeacht of er overeenkomende rijen in tabel B zijn of niet.

Als je een WHERE . hebt clausule in de instructie, de search_condition in de WHERE clausule wordt toegepast na het matchen van de LEFT JOIN clausule is voltooid.

Zie de volgende afbeelding van de LEFT JOIN clausule tussen de A- en B-tabellen.

Alle rijen in tabel A zijn opgenomen in de resultatenset.

Omdat de tweede rij (a2,2) heeft geen overeenkomstige rij in tabel B, de LEFT JOIN clausule maakt een valse rij gevuld met NULL .

Het volgende Venn-diagram illustreert de LEFT JOIN clausule.

Opgemerkt wordt dat LEFT OUTER JOIN is hetzelfde als LEFT JOIN .

SQLite LEFT JOIN voorbeelden

We gebruiken de artists en albums tabellen in de voorbeelddatabase voor demonstratie.

Eén album is van één artiest. Eén artiest kan echter nul of meer albums hebben.

Om artiesten te vinden die geen albums hebben met de LEFT JOIN clausule selecteren we artiesten en hun bijbehorende albums. Als een artiest geen albums heeft, wordt de waarde van de AlbumId kolom is NULL.

Om eerst de artiesten weer te geven die geen albums hebben, hebben we twee keuzes:

  • Gebruik eerst ORDER BY clausule om de rijen weer te geven waarvan AlbumId is NULL waarden eerst.
  • Ten tweede, gebruik WHERE clausule en IS NULL operator om alleen artiesten weer te geven die geen albums hebben.

De volgende instructie gebruikt de LEFT JOIN clausule met de ORDER BY clausule.

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

Probeer het

De volgende instructie gebruikt de LEFT JOIN clausule met de WHERE clausule.

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)

Probeer het

In deze tutorial heb je geleerd hoe je SQLite LEFT JOIN gebruikt clausule om gegevens uit meerdere tabellen op te vragen.


  1. Hoe kan ik inloggen en de duurste zoekopdrachten vinden?

  2. Hoe MariaDB op Rocky Linux en AlmaLinux te installeren?

  3. Hoe de Meridiem Indicator (AM/PM) toe te voegen aan een tijdwaarde in Oracle

  4. Overgecompliceerde Oracle jdbc BLOB-afhandeling