gpt4 book ai didi

mysql - 编写此 SQL 查询的更好方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 07:52:04 26 4
gpt4 key购买 nike

我有以下关系。

Suppliers( sid: integer, sname: string, address: string)
Parts(pid: integer, pname: string, color: string)
Catalog( sid: integer, pid: integer, cost: real)

问题要求我找到 Acme Widget Suppliers 提供的部件的 pnames,而不是其他人。我写了下面的 SQL 语句;但是我觉得这个查询由于重复而效率低下。我想知道是否有更好的方法可以在不重复选择目录部分的情况下编写此查询。

Select P.pname 
FROM Parts P
WHERE P.pid IN (
Select C.pid
FROM Catalog C
INNER JOIN Supplier S
ON S.sid = C.sid
WHERE S.sname = "Acme Widget Suppliers"
AND C.pid NOT IN (
SELECT C2.pid
FROM Catalog C2
INNER JOIN Supplier S
ON S.sid = C2.sid
WHERE S.sname <> "Acme Widget Suppliers"
)
);

最佳答案

你是对的。您要进行的查询可以大大简化。请尝试以下操作。

SELECT P.pname FROM Parts P, Suppliers S, Catalog C
WHERE C.pid = P.pid
AND C.sid = S.sid
AND S.sname == "Acme Widget Suppliers"

关于mysql - 编写此 SQL 查询的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com