Dalam SQL, EXISTS
operator menentukan subquery untuk menguji keberadaan baris. Ini mengembalikan TRUE
ketika subquery mengembalikan satu atau lebih baris.
Subquery adalah kueri yang bersarang di dalam kueri lain (atau bahkan subkueri lain)
Artikel ini berisi beberapa contoh dasar dari EXISTS
operator.
Tabel Sumber
Tabel berikut digunakan untuk contoh di halaman ini.
SELECT * FROM PetTypes;
SELECT * FROM Pets;
Hasil:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | | 2 | Cat | | 3 | Dog | | 4 | Rabbit | +-------------+-----------+ (4 rows affected) +---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +---------+-------------+-----------+-----------+------------+ (8 rows affected)
Contoh
Berikut adalah contoh untuk mendemonstrasikan EXISTS
operator.
SELECT
pt.PetTypeId,
pt.PetType
FROM PetTypes pt
WHERE EXISTS (
SELECT p.PetTypeId
FROM Pets p
WHERE p.PetTypeId = pt.PetTypeId
);
Hasil:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | | 2 | Cat | | 3 | Dog | +-------------+-----------+
Contoh ini menunjukkan kepada kita berapa banyak jenis hewan peliharaan di hotel hewan peliharaan kita. Sebenarnya ada empat jenis hewan peliharaan, tetapi hanya tiga yang cocok dengan hewan peliharaan sebenarnya di Pets
tabel.
Ini memberikan hasil yang sama yang akan kita dapatkan dengan kueri berikut yang menggunakan IN
operator.
SELECT
PetTypeId,
PetType
FROM PetTypes
WHERE PetTypeId IN ( SELECT PetTypeId FROM Pets );
Menggunakan NOT EXISTS
Kita bisa menambahkan NOT
operator untuk meniadakan hasil dan melihat berapa banyak jenis hewan peliharaan yang tidak di hotel hewan peliharaan kami.
SELECT
pt.PetTypeId,
pt.PetType
FROM PetTypes pt
WHERE NOT EXISTS (
SELECT p.PetTypeId
FROM Pets p
WHERE p.PetTypeId = pt.PetTypeId
);
Hasil:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 4 | Rabbit | +-------------+-----------+
Dalam hal ini, database kami berisi jenis hewan peliharaan Rabbit
, tapi saat ini kami tidak memiliki kelinci sebagai hewan peliharaan.