首页 > 数据库 > mysql教程 > 如何解决 MySQL 的 EXCEPT 语法错误并找到替代方案?

如何解决 MySQL 的 EXCEPT 语法错误并找到替代方案?

Linda Hamilton
发布: 2024-12-31 08:24:13
原创
679 人浏览过

How to Resolve MySQL's EXCEPT Syntax Error and Find Alternatives?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板