Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengecualikan Baris dalam Pertanyaan MySQL Tanpa KECUALI?
KECUALI Ralat Sintaks dalam Pertanyaan SQL
Dalam MySQL, menggunakan sintaks EXCEPT untuk mengecualikan baris daripada pertanyaan boleh mengakibatkan ralat sintaks. Ini kerana MySQL tidak menyokong kata kunci KECUALI secara asli.
Penyelesaian Alternatif
Untuk mencapai fungsi pengecualian yang diingini, anda boleh menggunakan sama ada klausa NOT IN atau a TINGGALKAN SERTAI dengan syarat IFNULL:
TIDAK MASUK Klausa:
SELECT s.sno FROM students s WHERE s.sno NOT IN ( SELECT t.sno FROM take t WHERE t.cno = 'CS112' );
KIRI SERTAI dengan IFNULL:
SELECT s.sno FROM students s LEFT JOIN take t ON s.sno = t.sno WHERE IFNULL(t.cno, '') != 'CS112';
Contoh
Pertimbangkan perkara berikut sampel data:
create temporary table students (sno int); insert into students values (1); insert into students values (2); insert into students values (3); insert into students values (4); insert into students values (5); insert into students values (6); insert into students values (7); insert into students values (8); insert into students values (9); insert into students values (10); create temporary table take (sno int, cno varchar(50)); insert into take values (1, 'CS112'); insert into take values (2, 'CS112'); insert into take values (3, 'CS112'); insert into take values (4, 'CS112');
Menggunakan sama ada klausa NOT IN atau LEFT JOIN dengan IFNULL akan mengembalikan keputusan berikut:
+------+ | sno | +------+ | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | +------+
Kaedah alternatif ini berkesan mengecualikan pelajar yang telah mengikuti kursus CS112, menghasilkan senarai pelajar yang belum mengikuti kursus tersebut.
Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Baris dalam Pertanyaan MySQL Tanpa KECUALI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!