gpt4 book ai didi

mysql - 多表外连接问题

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

我可能在这里搞错了,但我认为外连接应该为我提供(比如说)左表中的所有记录,以及右表中的匹配结果,以及没有匹配的空值。

我有 3 个表需要查询。 Person 和 Detail 具有直接的 1:1 关系。第三个表是时间。该表存储每周、每个人、每个项目的工作时间。我需要计算每个人已经完成的周数。

下面给出了每个用户投入时间的周数,只要他们投入的时间 > 1 周

SELECT name, detail.clock, COUNT(DISTINCT(week))
FROM person, detail,
WHERE person.ref = detail.person
AND detail.clock = time.clock
WHERE time.week >= "2010-07-01"
GROUP BY detail.clock

即这将显示已输入时间的 80/100 人。

但是我需要查看那 20 个尚未放下时间的人,所以我尝试了以下外部联接

SELECT name, detail.clock, COUNT(DISTINCT(week))
FROM person LEFT OUTER JOIN detail ON person.ref = detail.person
LEFT OUTER JOIN time ON detail.clock = time.clock
WHERE time.week >= "2010-07-01"
GROUP BY detail.clock

但是,这给了我与第一个查询完全相同的结果。

编辑:我刚刚发现了部分问题。在伪代码的原始版本中,没有按日期闪烁。我刚刚发现,删除日期过滤器后,查询的行为会更符合预期 - 尽管速度太慢而无用,而且日期很重要。

最佳答案

查看Jeff Atwood's visual guide to JOINs看看你能否让自己恢复正常。

关于mysql - 多表外连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3300238/

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