作者badbadook ( 嗨浪)
看板Database
标题Re: [SQL ] 有关两个子查询的问题
时间Fri Sep 28 01:27:22 2012
※ 引述《Antzzz (减肥中请勿喂食)》之铭言:
: ※ 引述《wskevin (kevin)》之铭言:
: : 其表格schema为:
: : Member(MID,Password,Mname,Grade,Tel,Address)
: : Song(SID,SName,Singer)
: : MemberSong(MID,SID)
: : SQL指令如下:
: : SELECT *
: : FROM Song
: : WHERE NOT EXISTS(
: : SELECT *
: : FROM Member
: : WHERE NOT EXISTS(
: : SELECT *
: : FROM MemberSong
: : WHERE Song.SID=MemberSong.SID AND Member.MID=MemberSong.MID)
: : )
: : )
: : 小弟我是初学者,
: : 如果是一个子查询,还可以大慨知道是什麽意思,
: : 可是两个子查询,想破头还是看不懂,
: : 有没有版上的高手可以指点一下,感激不尽,
: : 谢谢~~~
: 选出对应到全部的Member的Song
: 也就是说
: 假设Member有A、B、C
: Song有01、02
: 01对应到A、B、C
: 02对应到A而已
: 则选出Song 01
: 但如果今天又insert了一个新的Member D
: 则全部的song都不会被选到,因为没有Song对应到这个Member
: 然後再insert Song 01对应到D的关系到MemberSong对应表的话
: Song 01又会被选出来
: 其实自己填资料测最容易懂
请问两个not exist 如何达到上述效果
感觉逻辑不是SELECT * FROM Song 中选到的资料 一笔一笔带入第一个
not exist 但一个 not exist 下还有一个 not exist 所以把一笔
SELECT * FROM Song 中选到的资料与一笔SELECT * FROM Member
中选到的资料带入循环带入确定 都没有?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.224.119.142