0
我可能这里有棍子的错误结束,但我认为,外连接应该给我的一切,均是(比方说)左表中的记录,与匹配沿来自右表的结果,以及没有匹配的空值。多表外连接问题
我有3个表,我需要查询。人与细节有直接的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
但是这给了我完全相同的结果作为第一个查询。
编辑:我刚刚发现了这个问题的一部分。在伪代码的原始版本中,没有按日期过滤。我刚刚发现,删除的日期过滤器如预期的查询行为更多 - 尽管速度太慢是有用的,日期是非常重要的。