Ringkasan :dalam tutorial ini, Anda akan mempelajari cara menggunakan SQLite LEFT JOIN klausa untuk meminta data dari beberapa tabel.
Pengantar SQLite LEFT JOIN klausa
Mirip dengan INNER JOIN klausa, LEFT JOIN klausa adalah klausa opsional dari SELECT penyataan. Anda menggunakan LEFT JOIN klausa untuk menanyakan data dari beberapa tabel terkait.
Misalkan kita memiliki dua tabel:A dan B.
- A memiliki m dan f kolom.
- B memiliki n dan f kolom.
Untuk melakukan join antara A dan B menggunakan LEFT JOIN klausa, Anda menggunakan pernyataan berikut:
SELECT
a,
b
FROM
A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;Code language: SQL (Structured Query Language) (sql)
Ekspresi A.f = B.f adalah ekspresi kondisional. Selain operator persamaan (=), Anda dapat menggunakan operator perbandingan lain seperti lebih besar dari (>), lebih kecil dari (<), dll.
Pernyataan mengembalikan kumpulan hasil yang mencakup:
- Baris pada tabel A (tabel kiri) yang memiliki baris yang sesuai pada tabel B.
- Baris pada tabel A dan baris pada tabel B diisi dengan
NULLnilai jika baris dari tabel A tidak memiliki baris yang sesuai di tabel B.
Dengan kata lain, semua baris dalam tabel A termasuk dalam kumpulan hasil apakah ada baris yang cocok di tabel B atau tidak.
Jika Anda memiliki WHERE klausa dalam pernyataan, search_condition di WHERE klausa diterapkan setelah pencocokan LEFT JOIN klausa selesai.
Lihat ilustrasi berikut dari LEFT JOIN klausa antara tabel A dan B.
Semua baris dalam tabel A disertakan dalam kumpulan hasil.
Karena baris kedua (a2,2) tidak memiliki baris yang sesuai dalam tabel B, LEFT JOIN klausa membuat baris palsu diisi dengan NULL .
Diagram Venn berikut menggambarkan LEFT JOIN klausa.
Perlu dicatat bahwa LEFT OUTER JOIN sama dengan LEFT JOIN .
SQLite LEFT JOIN contoh
Kami akan menggunakan artists dan albums tabel dalam database sampel untuk demonstrasi.
Satu album milik satu artis. Namun, satu artis mungkin tidak memiliki album atau lebih.
Untuk menemukan artis yang tidak memiliki album dengan menggunakan LEFT JOIN klausa, kami memilih artis dan album yang sesuai. Jika artis tidak memiliki album, nilai AlbumId kolomnya adalah NULL.
Untuk menampilkan artis yang tidak memiliki album terlebih dahulu, kita memiliki dua pilihan:
- Pertama, gunakan
ORDER BYklausa untuk mencantumkan baris yangAlbumIdadalahNULLnilai terlebih dahulu. - Kedua, gunakan
WHEREklausa danIS NULLoperator untuk hanya mencantumkan artis yang tidak memiliki album.
Pernyataan berikut menggunakan LEFT JOIN klausa dengan ORDER BY klausa.
SELECT
artists.ArtistId,
AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
ORDER BY
AlbumId;Code language: SQL (Structured Query Language) (sql) Cobalah
Pernyataan berikut menggunakan LEFT JOIN klausa dengan WHERE klausa.
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) Cobalah
Dalam tutorial ini, Anda telah mempelajari cara menggunakan SQLite LEFT JOIN klausa untuk meminta data dari beberapa tabel.