(16)取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件
select sno from spj,p where spj.pno=p.pno and p.color=‘红’ group by sno
想问一下这个可以用not exists表达出来吗,两个not exists嵌套查询
取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
Leodong. 2023-04-14 17:40关注该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
是的,您可以使用NOT EXISTS子查询来实现查询至少有一个由红色零件的供应商提供的零件的供应商代号。以下是使用两个嵌套的NOT EXISTS子查询的查询语句:SELECT DISTINCT s.sno FROM S s WHERE NOT EXISTS (SELECT * FROM SPJ spj JOIN P p ON spj.pno = p.pno WHERE p.color = '红' AND spj.sno = s.sno) AND NOT EXISTS (SELECT * FROM SPJ spj JOIN P p ON spj.pno = p.pno WHERE p.color = '红' AND spj.sno NOT IN (SELECT spj2.sno FROM SPJ spj2 JOIN P p2 ON spj2.pno = p2.pno WHERE p2.color = '红'));该查询首先使用第一个NOT EXISTS子查询来排除掉提供红色零件的供应商。然后,使用第二个NOT EXISTS子查询来排除掉没有提供由红色零件供应商提供的零件的供应商。最终查询结果将包含至少一个由红色零件的供应商提供的零件的供应商代号。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
解决 无用评论 打赏 举报