[課業] 資料庫的 子查詢和 NOT EXISTS 關念求教
各位好, 小弟想請教一下各位
有關於子查詢中的 EXISTS 和 NOT EXISTS 的關念
底下的題目出自於唐箏資料庫應用第二回 P91頁
小弟雖然有講義, 但是沒有DVD, 所以是自己從文字中去理解
但是還是有些疑惑在, 所以麻煩各位指點一下
1.題目:列出所有不供應零件 P1 的供應商名稱
SELECT 供應商名稱
FROM 供應商
WHERE NOT EXISTS
(
SELECT *
FROM 專案供應零件
WHERE
供應商.供應商代號 = 專案供應零件.供應商代號 AND
零件代號 = 'P1'
)
這題小弟的理解,
先用子查詢, 找出所有有供應P1零件的供應商
在透過外面的 NOT EXIST 去找出 不供應零件P1 的供應商
舉例:
供應商中有 R1 = ( A, B, C, D, E),
供應 P1 零件的供應商有 R2 = (A, B, D)
不供應P1的零件商就是, C 和 E
R1 - R2 = ( C, E )
題目: 列出參與所有專案的供應商名稱
SELECT 供應商名稱
FROM 供應商
WHERE NOT EXISTS
(
SELECT *
FROM 專案
WHERE NOT EXISTS
(
SELECT *
FROM 專案供應零件
WHERE
供應商.供應商代號 = 專案供應零件.供應商代號 AND
專案.專案代號 = 專案供應零件.專案代號
)
)
這題小弟覺得連從題目變成這樣解的概念都沒有
不曉得是不是哪裡沒念到
麻煩各位了
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.16.241.98
→
03/09 15:51, , 1F
03/09 15:51, 1F
→
03/09 15:54, , 2F
03/09 15:54, 2F
→
03/09 16:10, , 3F
03/09 16:10, 3F
→
03/09 16:10, , 4F
03/09 16:10, 4F
推
03/09 16:24, , 5F
03/09 16:24, 5F
推
03/09 16:25, , 6F
03/09 16:25, 6F
推
03/09 19:16, , 7F
03/09 19:16, 7F
→
03/09 19:16, , 8F
03/09 19:16, 8F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):