Re: [課業] 資料庫的 子查詢和 NOT EXISTS 關念求教

看板Examination作者 (fish118)時間11年前 (2014/03/09 18:59), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串3/3 (看更多)
謝謝你 : 用原po第一題習慣的方式來看的話 是說有什麼其他的角度去想這樣的題目嗎?! 補習班是怎麼教的呢?? 因為如果不曉得人家的思考方向, 那這樣下次出題變化一下不曉得了 比較希望搞懂是怎麼去想的 底下我有針對一些不懂的地方又提出了一些疑問 謝謝各位 : 假設有供應商A,B,C,D : 專案1,2,3 : A沒有任何專案 : B有1號專案 簡寫為B1 : C有1,2號專案 簡寫為C1,C2 : D有全部專案 簡寫為D1,D2,D3 : 下面以(一)(二)(三)的順序來看 : 不知道有沒有表達錯誤的地方 : 請見諒 : : : 題目: 列出參與所有專案的供應商名稱 : : SELECT 供應商名稱 : (三)^^^^^這裡是所有供應商中 沒有出現在(二)中的 所以是ABCD-ABC=D : : FROM 供應商 : : WHERE NOT EXISTS : : ( : : SELECT * : (二)^^^^^^這裡是取所有供應商與專案的排列組合減去(一)中列出的組合 : 也就是 {A1~D3} -{B1,C1,C2,D1,D2,D3} = {A1,A2,A3,B2,B3,C3} ^^^^^^^ 這邊不懂的是, 為何這邊是 {A1, A2, A3, B1, B2, B3, D1, D2, D3}??? A1不是沒任何專案嗎? : : FROM 專案 : : WHERE NOT EXISTS : : ( : : SELECT * : (一)^^^^^^^^這裡查出了 B1,C1,C2,D1,D2,D3 找出所有有供應的廠商 : : FROM 專案供應零件 : : WHERE : : 供應商.供應商代號 = 專案供應零件.供應商代號 AND : : 專案.專案代號 = 專案供應零件.專案代號 : : ) : : ) : : 這題小弟覺得連從題目變成這樣解的概念都沒有 : : 不曉得是不是哪裡沒念到 : : 麻煩各位了 : : 謝謝 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 114.47.219.78 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.172.106.242

03/09 19:27, , 1F
因為(二)中的where並沒有 XX = YY 這種敘述 所以專案會與
03/09 19:27, 1F

03/09 19:27, , 2F
第一層的供應商 join出所有的組合
03/09 19:27, 2F

03/09 19:45, , 3F
抱歉, 這邊第一層是指(一), 還是最外層那個?
03/09 19:45, 3F

03/09 19:46, , 4F
(一)這邊沒有供應商
03/09 19:46, 4F

03/09 19:51, , 5F
最外層那個 也就是(三)那裡的from
03/09 19:51, 5F

03/11 12:09, , 6F
用程式語言的角度去看吧 每層SELECT都是一個迴圈
03/11 12:09, 6F

03/11 12:13, , 7F
想成foreach ...
03/11 12:13, 7F
文章代碼(AID): #1J74cMjj (Examination)
討論串 (同標題文章)
文章代碼(AID): #1J74cMjj (Examination)