Rumah >pangkalan data >tutorial mysql >Sintaks untuk menggunakan EXISTS dan NOT EXISTS dalam SQL
Penggunaan wujud dan tidak wujud dalam SQL memerlukan contoh kod khusus
Dalam SQL, wujud dan tidak wujud ialah sepasang predikat (predikat) yang biasa digunakan, digunakan untuk menentukan sama ada subkueri (subkueri) mengembalikan set hasil. exists digunakan untuk menyemak sama ada subquery mengembalikan sekurang-kurangnya satu baris hasil, manakala not exists digunakan untuk menyemak sama ada subquery tidak mengembalikan hasil. Sintaks
wujud adalah seperti berikut:
SELECT column1, column2, ... FROM table WHERE EXISTS (subquery);
sintaks tidak wujud adalah seperti berikut:
SELECT column1, column2, ... FROM table WHERE NOT EXISTS (subquery);
Yang berikut menggunakan beberapa contoh khusus untuk memperkenalkan penggunaan wujud dan tidak wujud.
Contoh 1: Cari rekod dengan syarat tertentu
Andaikan kita mempunyai jadual bernama "pekerja" yang mengandungi maklumat pekerja, termasuk lajur seperti "id_pekerja", "nama_pertama" dan "nama_akhir". Kami ingin mencari semua maklumat pekerja yang mana jawatan "pengurus" wujud.
SELECT employee_id, first_name, last_name FROM employees WHERE EXISTS (SELECT 1 FROM employees WHERE job_title = 'manager' AND employees.employee_id = manager_id);
Subquery dalam kod di atas mendapatkan semula rekod dengan kedudukan "pengurus" dari jadual "pekerja". Pertanyaan utama luar menggunakan predikat wujud untuk menentukan sama ada subkueri mengembalikan sekurang-kurangnya satu baris hasil.
Contoh 2: Cari rekod yang tidak mempunyai syarat tertentu
Andaikan sekarang kita ingin mencari maklumat tentang pekerja yang tidak mempunyai jawatan "pengurus".
SELECT employee_id, first_name, last_name FROM employees WHERE NOT EXISTS (SELECT 1 FROM employees WHERE job_title = 'manager' AND employees.employee_id = manager_id);
Subquery dalam kod di atas juga mendapatkan semula rekod dengan kedudukan "pengurus" dari jadual "pekerja". Pertanyaan utama luar menggunakan predikat tidak wujud untuk menentukan sama ada subkueri tidak mengembalikan hasil.
Contoh 3: Perbandingan subkueri
Subkueri dengan wujud dan tidak wujud kerana predikat juga boleh ditapis menggunakan syarat lain.
Andaikan kita ingin mencari maklumat tentang pekerja yang mempunyai gaji tertinggi.
SELECT employee_id, first_name, last_name FROM employees e1 WHERE NOT EXISTS (SELECT 1 FROM employees e2 WHERE e2.salary > e1.salary);
Dalam kod di atas, subquery mendapatkan semula rekod dengan gaji lebih besar daripada pekerja semasa, dan menggunakan predikat tidak wujud untuk menentukan sama ada tiada rekod yang memenuhi syarat.
Ringkasan:
wujud dan tidak wujud ialah predikat yang biasa digunakan dalam SQL, digunakan untuk menyemak sama ada subkueri mengembalikan set hasil. wujud digunakan untuk menentukan bahawa sekurang-kurangnya satu baris keputusan wujud, dan tidak wujud digunakan untuk menentukan bahawa tiada hasil. Dengan menggunakan wujud dan tidak wujud, kami boleh menulis pernyataan pertanyaan yang lebih fleksibel untuk memenuhi keperluan perniagaan yang berbeza.
Atas ialah kandungan terperinci Sintaks untuk menggunakan EXISTS dan NOT EXISTS dalam SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!