[SQL ] 语法上的差异性

楼主: oklp1415 (天生我材)   2014-04-04 13:38:48
(针对 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 是怎样的执行结果??
小的难以顿悟~"~感谢帮忙!!
作者: bohei (run and fall)   2014-04-04 19:07:00
撇开上半部一样的不看差别就在一个使用not exists 一个使用exceptexcept不就是排除吗?当然就跟not exists一样搂我觉得你会搞混是因为你想把一整句sql一次看完你可以试着从内圈的括号开始看

Links booklink

Contact Us: admin [ a t ] ucptt.com