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
NULL
nilai 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 BY
klausa untuk mencantumkan baris yangAlbumId
adalahNULL
nilai terlebih dahulu. - Kedua, gunakan
WHERE
klausa danIS NULL
operator 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.