gpt4 book ai didi

mysql - 与使用 UNIQUE 的 SQL 查询混淆

转载 作者:行者123 更新时间:2023-11-29 15:49:01 25 4
gpt4 key购买 nike

假设我们有以下关系模型。每个关系的主键粗体显示:

水手(sid、姓名、等级、年龄)

(出价、名称、颜色)

保留(sid、出价、日期)

我提出了以下查询:“查找最多一次预订过101号船的水手。”答案如下:

SELECT S.sid
FROM Sailors S
WHERE UNIQUE (SELECT R.sid
FROM Reserves R
WHERE R.bid = '101' AND S.sid = R.sid)

我不明白的是这个查询如何返回没有预订这艘船的水手。我发现嵌套查询会返回至少预订过一次出价 = 101 的船的水手的所有 sids。

然后,通过使用“UNIQUE”子句,我们要求 sids 是唯一的,因此我们删除重复项并保留曾经以 bid = 101 预订船只的水手的 sids。

但是,我们是否能找到从未预订过 101 号船的水手呢?如果不是,那么我们实际上不会计算最多预订一次 101 船的水手,而是计算恰好预订一次 101 船的水手。

我是正确的还是我错过了什么?

最佳答案

我不熟悉 UNIQUE 语法,但要获得结果,您可以简单地使用:

SELECT R.sid FROM Reserves R where R.did=101 GROUP BY R.sid HAVING count(*)=1

关于mysql - 与使用 UNIQUE 的 SQL 查询混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56867872/

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