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
但是這給了我完全相同的結果作爲第一個查詢。
編輯:我剛剛發現了這個問題的一部分。在僞代碼的原始版本中,沒有按日期過濾。我剛剛發現,刪除的日期過濾器如預期的查詢行爲更多 - 儘管速度太慢是有用的,日期是非常重要的。