列出參與所有專案的供應商名稱 - 考試

Table of Contents

此題已有人問過,但我還是不解要如何構築此兩層巢狀查詢

Q1:列出參與所有專案的供應商名稱?

題目所給表格:https://imgur.com/FqDfBeX

解法是用:不存在任何專案是沒有參與的

解答就像此網站的解析:https://goo.gl/fZwjDj


巢狀查詢是要視為FROM後面的表格一起看嗎?

為何第二個FROM後面是專案,最後一個FROM是看專案供應零件?


如果我先從最內層解析,

最後一個WHERE的條件是連結到兩個更外層查詢的表格(供應商和專案)

就代表我得同時看到最外層的 供應商.專案.專案供應零件 的表格


我的問題點在於要如何一步一步建立多層的巢狀查詢,

由內向外、由外向內,或是同時?

這種巢狀查詢要怎麼練習呢?

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

另外,關於"所有"的sql語法,何時要用"負負得正"的方式來解(即不存在...沒有參與)

何時要用正向的存在方式來解(即存在)?


例如 Q2.列出所有有參與"一級棒供應商有參與的專案"的供應商

解答從"找出供應商其不存在任何一級棒參與的專案是沒有參與的"


感謝各位,搞得我頭好痛= =


--

All Comments

Puput avatarPuput2018-06-14
借文問 因為題目沒限制做法,之前網路看到另一種解法是
用count串起來,例如找參與相異專案數=所有專案數的廠商
,不知道這樣寫可不可行?
Rachel avatarRachel2018-06-17
資料庫系統原理(第六版)譯者: 陳玄玲 出版社:碁峰
Daniel avatarDaniel2018-06-21
第五章 單元5.1.4 有說明。