[課業] SQL觀念問題
小弟之前有問過關於SQL not exists觀念問題,可能說明的不清楚,所以沒得到答案
not exists觀念我還不是非常清楚,如有蠢問題請見諒.
Q1. 列出所有沒有銷售黑色零件的供應商名稱
以下是會用到的表格
http://imgur.com/FqDfBeX
書上給的答案為:
http://imgur.com/F7xbk55
這個我可以理解,因為透過子查詢,可以將零件表格連接到對應的專案供應代號表格
讓專案供應代號表格可以有零件的資訊.
除此之外,子查詢裡可以透過外層表格(供應商)裡的供應商代號來判斷哪些供應商有提供
黑色零件
但是,以下題目為高考題目,卻不需要外層表格的資訊來判斷
http://imgur.com/gDGvS7z
子查詢沒用到外面的表格欄位,"那他怎麼判斷王小明是不是有修那些課程" ?
在子查詢裡,student會和select結合而得到那些學生修了那些課程且找出王小明這個學生
所以如果有王小明這個學生,course每次到內層都不會是empty阿
所以變成是"如果有王小明這個學生就不印出課程資訊"
因此,需要改寫成以下才是正確答案
http://imgur.com/wFuF1AR
不知道以上是否有誤?
Q2. 關於在找"所有"的查詢裡不知道是否能改成只有一個not exists
例如: 列出參與所有專案的供應商名稱
我的SQL語法如下,不知道是否正確? 或是考試這樣寫OK?
外層有供應商和專案的所有可能組合,然後到子查詢裡找是否有不存在的組合
如果有,代表有供應商沒參加某個專案
http://imgur.com/JgkhKCF
謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.26.180.220
※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1459442497.A.B53.html
推
04/01 01:20, , 1F
04/01 01:20, 1F
→
04/01 01:20, , 2F
04/01 01:20, 2F
推
04/01 01:27, , 3F
04/01 01:27, 3F
→
04/01 01:27, , 4F
04/01 01:27, 4F
→
04/01 01:27, , 5F
04/01 01:27, 5F
→
04/01 01:28, , 6F
04/01 01:28, 6F
From不就是卡氏積功能?還是我哪裡誤會呢?
謝謝
※ 編輯: fightforlive (27.246.147.219), 04/01/2016 18:21:24
推
04/01 21:43, , 7F
04/01 21:43, 7F
剛剛弄請楚自己的問題了= =
我的解法只會找到至少一個專案沒參與的供應商XD
是我自己弄錯了= =
※ 編輯: fightforlive (114.26.180.220), 04/01/2016 23:07:22
推
04/08 12:02, , 8F
04/08 12:02, 8F
→
04/08 12:04, , 9F
04/08 12:04, 9F
→
04/08 12:04, , 10F
04/08 12:04, 10F
推
04/08 12:13, , 11F
04/08 12:13, 11F
→
04/08 12:14, , 12F
04/08 12:14, 12F
→
04/08 12:14, , 13F
04/08 12:14, 13F