Rumah >pangkalan data >tutorial mysql >Sintaks untuk menggunakan EXISTS dan NOT EXISTS dalam SQL

Sintaks untuk menggunakan EXISTS dan NOT EXISTS dalam SQL

王林
王林asal
2024-02-19 23:08:061126semak imbas

sql中exists,not exists的用法

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel berkaitan

Lihat lagi