SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite ляво присъединяване

Резюме :в този урок ще научите как да използвате SQLite LEFT JOIN клауза за запитване на данни от множество таблици.

Въведение в SQLite LEFT JOIN клауза

Подобно на INNER JOIN клауза, LEFT JOIN клаузата е незадължителна клауза на SELECT изявление. Използвате LEFT JOIN клауза за запитване на данни от множество свързани таблици.

Да предположим, че имаме две таблици:A и B.

  • A има m и f колони.
  • B има n и f колони.

За да извършите свързване между A и B, като използвате LEFT JOIN клауза, използвате следното изявление:

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

Изразът A.f = B.f е условен израз. Освен оператора за равенство (=) можете да използвате и други оператори за сравнение, като по-голямо от (>), по-малко от (<) и т.н.

Инструкцията връща набор от резултати, който включва:

  1. Редове в таблица А (лява таблица), които имат съответни редове в таблица Б.
  2. Редове в таблицата A и редовете в таблица B са запълнени с NULL стойности, в случай че редът от таблица А няма съответни редове в таблица Б.

С други думи, всички редове в таблица A се включват в набора от резултати, независимо дали има съвпадащи редове в таблица B или не.

В случай, че имате WHERE клауза в изявлението, search_condition в WHERE Клаузата се прилага след съвпадението на LEFT JOIN клаузата завършва.

Вижте следната илюстрация на LEFT JOIN клауза между таблиците A и B.

Всички редове в таблица A са включени в набора от резултати.

Тъй като вторият ред (a2,2) няма съответен ред в таблица B, LEFT JOIN клаузата създава фалшив ред попълнено с NULL .

Следващата диаграма на Вен илюстрира LEFT JOIN клауза.

Отбелязва се, че LEFT OUTER JOIN е същото като LEFT JOIN .

SQLite LEFT JOIN примери

Ще използваме artists и albums таблици в примерната база данни за демонстрация.

Един албум принадлежи на един изпълнител. Въпреки това един изпълнител може да има нула или повече албума.

За да намерите изпълнители, които нямат албуми, като използвате LEFT JOIN клауза, ние избираме изпълнители и съответните им албуми. Ако изпълнител няма албуми, стойността на AlbumId колоната е NULL.

За да покажем първо изпълнителите, които нямат албуми, имаме два избора:

  • Първо, използвайте ORDER BY клауза за изброяване на редовете, чийто AlbumId е NULL първо стойности.
  • Второ, използвайте WHERE клауза и IS NULL оператор, за да посочи само изпълнители, които нямат албуми.

Следното изявление използва LEFT JOIN клауза с ORDER BY клауза.

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

Опитайте го

Следното изявление използва LEFT JOIN клауза с WHERE клауза.

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)

Опитайте го

В този урок научихте как да използвате SQLite LEFT JOIN клауза за запитване на данни от множество таблици.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Developer и ADO.Net доставчици на данни вече поддържат Entity Framework Core 5

  2. SQLite JSON_VALID()

  3. SQLite СЪЩЕСТВУВА

  4. ТАБЛИЦА ЗА ПРОМЕНЯВАНЕ НА SQLite

  5. Данните се попълват от датата на конкретна таблица вместо от цялата таблица в sqlite