关于SQL数据库的一个查询问题求高手解答!
这是相关问题的内容
SNO PNO JNO QTY
S1 P1 J1 200
S1 P1 J3 100
S1 P1 J4 700
S1 P2 J2 100
S2 P3 J1 400
S2 P3 J2 200
S2 P3 J4 500
S2 P3 J5 400
S2 P5 J1 400
S2 P5 J2 100
S3 P1 J1 200
S3 P3 J1 200
S4 P5 J1 100
S4 P6 J3 300
S4 P6 J4 200
S3 P2 J4 100
S5 P3 J1 200
S5 P6 J2 200
S5 P6 J4 500
其中SPJ表有供应商代码(SNO),零件代码(PNO),工程项目代码(JNO),供应数量(QTY)组成,表示某供应商供应某种零件给某个工程项目的数量为QTY
问题是 求至少用了供应商S1所供应的全部零件的工程号JNO?
(我的想法是,按照这么样看的话,从度娘的答案出来都是J4,但是我自己的想法是S1只供应了2种零件P1和P2,题目所问的话即是要求都使用零件P1和P2,并且这两个零件都是S1所提供的,所以查询结果应该为空,也就是不存在符合要求的JNO。 求高手能用我的这个想法写出带有EXISTS的查询,我尝试很多次都失败,实在没办法于是来跪求!)
------解决方案--------------------select distinct jno from ta s
where not exists(select * from ta t where sNO='s1' and
not exists(select 1 from ta p where t.pno=p.pno and s.JNO=p.jNO and p.SNO=t.sno))
这样呢?