Ringkasan :dalam tutorial ini, Anda akan belajar bagaimana menggunakan SQLite IN operator untuk menentukan apakah suatu nilai cocok dengan nilai apa pun dalam daftar nilai atau hasil dari subkueri.
Pengantar SQLite IN operator
SQLite IN operator menentukan apakah suatu nilai cocok dengan nilai apa pun dalam daftar atau subkueri. Sintaks dari IN operatornya adalah sebagai berikut:
expression [NOT] IN (value_list|subquery);Code language: SQL (Structured Query Language) (sql)
expression dapat berupa ekspresi yang valid atau kolom tabel.
Daftar nilai adalah daftar nilai tetap atau kumpulan hasil dari satu kolom yang dikembalikan oleh subkueri. Jenis ekspresi dan nilai yang dikembalikan dalam daftar harus sama.
IN operator mengembalikan benar atau salah tergantung pada apakah ekspresi cocok dengan nilai apa pun dalam daftar nilai atau tidak. Untuk meniadakan daftar nilai, gunakan NOT IN operator.
SQLite IN contoh operator
Kami akan menggunakan Tracks tabel dari database sampel untuk demonstrasi.
Pernyataan berikut menggunakan IN operator untuk menanyakan trek yang id jenis medianya adalah 1 atau 2.
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;Code language: SQL (Structured Query Language) (sql) Cobalah
Kueri ini menggunakan OR operator alih-alih IN operator untuk mengembalikan set hasil yang sama seperti kueri di atas:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;Code language: SQL (Structured Query Language) (sql) Cobalah
Seperti yang Anda lihat dari kueri, menggunakan IN operator jauh lebih pendek.
Jika Anda memiliki kueri yang menggunakan banyak OR operator, Anda dapat mempertimbangkan untuk menggunakan IN operator sebagai gantinya untuk membuat kueri lebih mudah dibaca.
SQLite IN operator dengan contoh subquery
Kueri berikut mengembalikan daftar id album dari id artis 12:
SELECT albumid
FROM albums
WHERE artistid = 12;Code language: SQL (Structured Query Language) (sql) Cobalah
Untuk mendapatkan lagu-lagu milik artis id 12, Anda dapat menggabungkan IN operator dengan subquery sebagai berikut:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);Code language: SQL (Structured Query Language) (sql) Cobalah
Dalam contoh ini:
- Pertama, subquery mengembalikan daftar id album milik artis id 12.
- Kemudian, kueri luar mengembalikan semua lagu yang id albumnya cocok dengan daftar id album yang dikembalikan oleh subkueri.
SQLite NOT IN contoh
Pernyataan berikut mengembalikan daftar trek yang id genrenya tidak ada dalam daftar (1,2,3).
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);Code language: SQL (Structured Query Language) (sql) Cobalah
Dalam tutorial ini, Anda telah mempelajari cara menggunakan SQLite IN operator untuk mencocokkan nilai dengan daftar nilai atau subkueri.