SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Połączenie z lewej strony SQLite

Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite LEFT JOIN klauzula do zapytania o dane z wielu tabel.

Wprowadzenie do SQLite LEFT JOIN klauzula

Podobne do INNER JOIN klauzula LEFT JOIN klauzula jest opcjonalną klauzulą ​​SELECT oświadczenie. Używasz LEFT JOIN klauzula do zapytania o dane z wielu powiązanych tabel.

Załóżmy, że mamy dwie tabele:A i B.

  • A ma kolumny m i f.
  • B ma n i f kolumn.

Aby wykonać połączenie między A i B za pomocą LEFT JOIN klauzula, użyj następującego oświadczenia:

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

Wyrażenie A.f = B.f jest wyrażeniem warunkowym. Oprócz operatora równości (=) możesz użyć innych operatorów porównania, takich jak większy niż (>), mniejszy niż (<) itp.

Instrukcja zwraca zestaw wyników, który zawiera:

  1. Wiersze w tabeli A (lewa tabela), które odpowiadają wierszom w tabeli B.
  2. Wiersze w tabeli A i wiersze w tabeli B wypełnione NULL wartości w przypadku, gdy wiersz z tabeli A nie ma żadnych odpowiadających wierszy w tabeli B.

Innymi słowy, wszystkie wiersze w tabeli A są uwzględniane w zestawie wyników, niezależnie od tego, czy istnieją pasujące wiersze w tabeli B, czy nie.

Jeśli masz WHERE klauzula w instrukcji, search_condition w WHERE klauzula jest stosowana po dopasowaniu LEFT JOIN klauzula jest zakończona.

Zobacz poniższą ilustrację LEFT JOIN klauzula między tabelami A i B.

Wszystkie wiersze w tabeli A są zawarte w zestawie wyników.

Ponieważ drugi wiersz (a2,2) nie ma odpowiadającego wiersza w tabeli B, LEFT JOIN klauzula tworzy fałszywy wiersz wypełnione NULL .

Poniższy diagram Venna ilustruje LEFT JOIN klauzula.

Należy zauważyć, że LEFT OUTER JOIN to to samo co LEFT JOIN .

SQLite LEFT JOIN przykłady

Użyjemy artists i albums tabele w przykładowej bazie danych do demonstracji.

Jeden album należy do jednego artysty. Jednak jeden wykonawca może mieć zero lub więcej albumów.

Aby znaleźć wykonawców, którzy nie mają żadnych albumów, użyj LEFT JOIN klauzuli, wybieramy artystów i odpowiadające im albumy. Jeśli wykonawca nie ma żadnych albumów, wartość AlbumId kolumna ma wartość NULL.

Aby wyświetlić najpierw wykonawców, którzy nie mają żadnych albumów, mamy dwie możliwości:

  • Najpierw użyj ORDER BY klauzula, aby wyświetlić wiersze, których AlbumId jest NULL wartości najpierw.
  • Po drugie, użyj WHERE klauzula i IS NULL operatora, aby wyświetlić tylko artystów, którzy nie mają żadnych albumów.

Poniższa instrukcja używa LEFT JOIN klauzula z ORDER BY klauzula.

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

Wypróbuj

Poniższa instrukcja używa LEFT JOIN klauzula z WHERE klauzula.

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)

Wypróbuj

W tym samouczku nauczyłeś się korzystać z SQLite LEFT JOIN klauzula do zapytania o dane z wielu tabel.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz tabelę tymczasową w SQLite

  2. Jak uzyskać maksymalną wartość liczby całkowitej typu kolumny przechowywanej jako tekst typu w tabeli sqlite?

  3. SQLite LIKE

  4. chmod nie powiodło się:EPERM (operacja niedozwolona) w Androidzie?

  5. Jak odczytać numer wersji z pliku bazy danych w systemie Android, który jest umieszczony w folderze zasobów