MySQL EXCEPT 語法錯誤:解決方案與替代方案
嘗試在MySQL 中使用EXCEPT 運算子執行查詢時遇到的錯誤是由於以下原因引起的它缺乏對此語法的支持。
要解決此問題,請考慮使用 NOT IN 或 a 等替代方法LEFT JOIN:
SELECT s.sno FROM students s WHERE s.sno NOT IN ( SELECT t.sno FROM take t WHERE t.cno = 'CS112' );
或者,您可以使用 LEFT JOIN:
SELECT s.sno FROM students s LEFT JOIN take t ON s.sno = t.sno WHERE IFNULL(t.cno, '') != 'CS112'
臨時表演示:
來說明這些替代方案的有效性,讓我們使用範例建立臨時表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'
此查詢應傳回學生編號5 到10。
以上是如何解決 MySQL 的 EXCEPT 語法錯誤並找到替代方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!