(16)取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件
select sno from spj,p where spj.pno=p.pno and p.color=‘红’ group by sno
想问一下这个可以用not exists表达出来吗,两个not exists嵌套查询
该回答通过自己思路及引用到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子查询来排除掉没有提供由红色零件供应商提供的零件的供应商。最终查询结果将包含至少一个由红色零件的供应商提供的零件的供应商代号。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
不知道你这个问题是否已经解决, 如果还没有解决的话: