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中文网其他相关文章!