[SQL ] 不確定where的條件對不對
以下為一個ktv點歌系統的schema
member( MID, MName ) 會員 (會員id,姓名)
 ̄
song( SID, SName, singer ) 歌曲 (歌曲id, 歌名, 歌手)
 ̄
order( MID, SID ) 會員點的歌曲 (會員id, 歌曲id) 關係為 M to N
 ̄ ̄ ̄ ̄
題目是 "請找出每一位會員必點的歌曲" (意思是 每個人都會點的歌是哪些)
請問可以這樣寫嗎?
------------------------------------------------------
1 SELECT s.SID, s.SName, s.Singer
2 FROM song s, order o
3 WHERE
4 (Select count(distinct o.SID) FROM order o) =
5 (Select count(o2.MID) FROM order o2 GROUP BY o2.MID)
6 AND o.SID=s.SID
7 AND o.SID=o2.SID ;
------------------------------------------------------
問題1 可以在where裡面用 (select a) = (select b) 去判定兩個value是否相等嗎?
問題2 我在第5行裡面用到的o2, 可以在第7行使用嗎?
(我知道寫在第5行會比較保險 不過我想知道能不能寫在外面) 謝謝大家~!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.233.69.149
推
07/18 23:11, , 1F
07/18 23:11, 1F
推
07/18 23:17, , 2F
07/18 23:17, 2F