作者oklp1415 (天生我材)
看板Database
标题[SQL ] 语法上的差异性
时间Fri Apr 4 13:38:48 2014
(针对
SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
资料库名称:
MySQL
资料库版本:
内容/问题描述:
两个语法是这样的
1.
select no,name
from clerk
where not exists(
(select book_no from book where auth='lee')
except
(select book_no
from trade_detail natural join trade
where trade.no=clerk.no));
2.
select no,name from clerk
where not exists(
select * from book where auth='lee' AND NOT EXISTS (
select * from trade natural join trade_detail
where trade.no=clerk.no AND trade_detail.book_no=book.book_no));
以上两个语法结果是相同的结果
问题是不懂not exists+except的做何种的运算方式??
跟not exists做两次是一样的运算
不知道有人肯帮分析一下not exists之後接except 是怎样的执行结果??
小的难以顿悟~"~感谢帮忙!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.39.6.229
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Database/M.1396589930.A.8B6.html
1F:→ bohei:撇开上半部一样的不看 04/04 19:07
2F:→ bohei:差别就在一个使用not exists 一个使用except 04/04 19:08
3F:→ bohei:except不就是排除吗?当然就跟not exists一样搂 04/04 19:08
4F:→ bohei:我觉得你会搞混是因为你想把一整句sql一次看完 04/04 19:10
5F:→ bohei:你可以试着从内圈的括弧开始看 04/04 19:11