MySQL EXCEPT Syntax Error: Resolution and Alternatives
Ralat yang dihadapi semasa cuba melaksanakan pertanyaan dengan operator EXCEPT dalam MySQL timbul kerana kekurangan sokongan untuk sintaks ini.
Untuk mengatasinya isu, pertimbangkan untuk menggunakan pendekatan alternatif seperti NOT IN atau LEFT JOIN:
SELECT s.sno FROM students s WHERE s.sno NOT IN ( SELECT t.sno FROM take t WHERE t.cno = 'CS112' );
Sebagai alternatif, anda boleh menggunakan LEFT JOIN:
SELECT s.sno FROM students s LEFT JOIN take t ON s.sno = t.sno WHERE IFNULL(t.cno, '') != 'CS112'
Demonstrasi dengan Jadual Sementara:
Untuk menggambarkan keberkesanan alternatif ini, mari kita cipta jadual sementara dengan sampel data:
create temporary table temp_students (sno int) insert into temp_students values (1) insert into temp_students values (2) insert into temp_students values (3) insert into temp_students values (4) insert into temp_students values (5) insert into temp_students values (6) insert into temp_students values (7) insert into temp_students values (8) insert into temp_students values (9) insert into temp_students values (10) create temporary table temp_take (sno int, cno varchar(50)) insert into temp_take values (1, 'CS112') insert into temp_take values (2, 'CS112') insert into temp_take values (3, 'CS112') insert into temp_take values (4, 'CS112') Execute the following query to retrieve students who are not enrolled in CS112: SELECT s.sno FROM temp_students s LEFT JOIN temp_take t ON s.sno = t.sno WHERE IFNULL(t.cno, '') != 'CS112'
Pertanyaan ini harus mengembalikan nombor pelajar 5 hingga 10.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Sintaks KECUALI MySQL dan Cari Alternatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!