34,838
社区成员




EMPLOYEE
ESSN
001
002
PROJECT:
PNUMBER
1
2
3
WORK_ON
ESSN PNO
001 1
001 2
001 3
001 1
001 2
--如上數據員工002出現在結果集,因為在WORK_ON的PNO少了3
select FNAME,LNAME
from EMPLOYEE E
WHERE NOT EXISTS
(SELECT * FROM PROJECT P
WHERE
NOT exists(SELECT 1 FROM WORK_ON W WHERE W.ESSN=E.SSN AND P.PNUMBER=W.PNO )
)
--也可以這樣改
同一個員有在WORK_ON的PNO字段 包含了所有的PROJECT表的PNUMBER字段,有個沒有包括都出結果集
SELECT * FROM PROJECT P WHERE P.PNUMBER NOT in
(SELECT W.PNO FROM WORK_ON W WHERE W.ESSN=E.SSN)