MYSQL 支持EXCEPT语句吗? 例子里EXCEPT后面的换成NOT IN可以吗? 两个例子错在哪里啊?

关注:143  答案:2  mip版

解决时间 2021-01-17 23:20

提问者祇為焄菂兲哋閤

2021-01-17 04:38

mysql> select s.sname

-> from sailors s

-> where s.sid in(select r.sid

-> from reserves r

-> where r.bid in(select b.bid

-> from boats b

-> where b.color='red'))

-> except

-> select s2.sname

-> from sailors s2

-> where s2.sid in(select r2.sid

-> from reserves r2

-> where r2.bid in(select b2.bid

-> from boats b2

-> where b2.color='green'));

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use near 'excep

t

select s2.sname

from sailors s2

where s2.sid in(select r2.sid

' at line 8

EXCEPT换成NOT IN

mysql> select s.sname

-> from sailors s

-> where s.sid in(select r.sid

-> from reserves r

-> where r.bid in(select b.bid

-> from boats b

-> where b.color='red'))

-> and not in(select r2.sid

-> from reserves r2

-> where r2.bid in(select b2.bid

-> from boats b2

-> where b2.color='green'));

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use near 'in(se

lect r2.sid

from reserves r2

where r2.bid in(' at line 8

最佳答案

二级知识专家云朵有点甜

2021-01-17 05:10

你的代码好长啊, 我就简单解释一下

MySQL  不支持  EXCEPT,  但是可以有替代的办法。

-- 测试表,与测试数据

CREATE TABLE union_tab_1 (

id INT,

val VARCHAr(10)

);

CREATE TABLE union_tab_2 (

id INT,

val VARCHAr(10)

);

INSERT INTO union_tab_1 VALUES(1, 'A');

INSERT INTO union_tab_1 VALUES(2, 'B');

INSERT INTO union_tab_1 VALUES(3, 'C');

INSERT INTO union_tab_2 VALUES(1, 'A');

INSERT INTO union_tab_2 VALUES(1, 'A');

INSERT INTO union_tab_2 VALUES(2, 'B');

INSERT INTO union_tab_2 VALUES(4, 'D');

EXCEPT– 返回第一个表中有、第二个表中没有的数据

SQL  Server 是支持的

1> SELECt * FROM union_tab_1

2> EXCEPT

3> SELECt * FROM union_tab_2;

4> go

id val

----------- ----------

3 C

(1 行受影响)

1> SELECt * FROM union_tab_2

2> EXCEPT

3> SELECt * FROM union_tab_1;

4> go

id val

----------- ----------

4 D

(1 行受影响)

MySQL  不支持

实现相同功能的 SQL 如下:

SELECt

DISTINCT union_tab_1.*

FROM

union_tab_1 LEFT JOIN union_tab_2

ON (union_tab_1.id = union_tab_2.id

AND union_tab_1.val = union_tab_2.val)

WHERe

union_tab_2.id IS NULL;

+------+------+

| id | val |

+------+------+

| 3 | C |

+------+------+

1 row in set (0.00 sec)

全部回答

1楼癡情菂尐豬豬

2021-01-17 06:00

应该不能吧。

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

点此我要举报以上信息!

推荐资讯

大家都在看

mysql可以用except吗_MYSQL 支持EXCEPT语句吗? 例子里EXCEPT后面的换成NOT IN可以吗? 两个例子错在哪里啊?...相关推荐

  1. mysql选择utf 8编码_MySQL支持UTF-8编码全攻略

    来源:网海拾贝 最近看到良多若干关于MySql支持utf-8编码的成绩,恰好自身也要用,去找了一下,没有写的很片面的. 清算了一下,供各人参考. 在一下效能器设置测试议决 效能器设置: window2 ...

  2. mysql返回数据只要年月日_MySQL支持按年月日查询

    在业务环境中,总是想要筛选出不同时间条件下的数据,例如我只想查询当天数据,当月数据或者本年数据.于是就想通过MySQL自带的几个时间函数进行简单的实现. 一.SQL语句实现Talk is cheap, ...

  3. mysql教程or怎么用_MySQL中or语句用法示例

    1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_ ...

  4. mysql 压力测试知乎_MySQL查看SQL语句执行效率和mysql几种性能测试的工具

    网络中整理,记录下,朋友们应该用得到! Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮 ...

  5. mysql 建表语句示例_MySQL Create Table语句和示例

    mysql 建表语句示例 In this article, I am going to explain the MySQL CREATE TABLE statement with examples. ...

  6. mysql数据库 or的用法_MySQL中or语句用法示例

    1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_ ...

  7. mysql去重复查询 性能_MySQL中distinct语句去查询重复记录及相关的性能讨论_MySQL...

    在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...

  8. mysql去重复查询 性能_MySQL中distinct语句去查询重复记录及相关的性能讨论

    在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...

  9. mysql四个对勾_Mysql like查询语句中,结果包含反斜杠 \ 字符的,需要替换成四个反斜杠 \\\\...

    如题,当SQL语句中使用Like查询,且期望匹配的结果中含有"\"的,应当把"\"替换为"\\\\". 比如数据库中text字段有以下三行: ...

  10. mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

最新文章

  1. Pytorch-学习记录 卷积操作——Tensor.size()
  2. Linux数据写操作改进
  3. CTFshow 命令执行 web41
  4. const在c中的用法
  5. WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
  6. 更改临时文件夹的路径
  7. iOS中nil,Nil,NULL的区别
  8. Linux BPF hello world C语言示例代码
  9. linux抓包库libpcap,linux下libpcap抓包分析.doc
  10. mangle 打标签冲突
  11. 微软技术专家谈x86架构的怪异之处
  12. .NET导入导出Excel
  13. 7-25 总结 Junit 测试 和断言 /ArrayList 和LinkedList 的区别/HashCode用来存放数据.
  14. 动手学深度学习day-two
  15. 应用宝shangjia安全评估报告_《安全评估报告》提交指引
  16. 一种并行随机梯度下降法
  17. 安卓+ios系统--手机端页面自适应手机屏幕大小,禁止手动放大和缩小VUE
  18. bugku ctf 妹子的陌陌 (想要妹子陌陌号吗? 做题来拿吧)
  19. window子对象的详细介绍 _@jie
  20. 聊一聊 Web 框架的新趋势

热门文章

  1. vue loading组件
  2. Java面试准备(一)
  3. 2.3 利用FTP服务器下载和上传文件
  4. FreeBSD下使用Blogbio写cnblogs博客
  5. nginx简单的rewrite配置
  6. redis 备份与恢复
  7. IE下图片切换的时候,图片总是切换不成功---根本问题是IE缓存图片
  8. 最近的shell脚本(updating)
  9. (转) Lua使用心得一
  10. 小新 无法开机 联想_19年最“狠”轻薄本诞生 联想小新Pro 13优缺点一览