對於除了在select語句中使用函數以外的兩個以上的表,我真的對連接感到困惑!在連接中計算列
我有三個表users
,data
和projects
。 data
上的每一行與users
表的用戶唯一相關,data
表的外鍵爲uid
列,其中引用了的users
表。
到現在爲止還不難嗎?但我希望。
在projects
表中每個項目都有上users
表太id
列兩個分別名爲starter
和finisher
他們都列引用和彼此不同。
那麼什麼!我想獲取包括其data
和數量projects
,他們開始它(如starter
)每個用戶的數據或所有用戶完成了它(爲finisher
)
select
d . *,
u . *,
COUNT(p.starter) as starter,
COUNT(p.finisher) as finisher
from
users u
left join
projects p ON u.id = p.freelancer
left join
data d ON u.id = d.uid
GROUP BY (u.id)
此查詢結果(如預期)誰已經是starter
或finisher
或什麼也沒有(projects
沒有對應的行)但是計數結果不正確!例如ID爲1
用戶完成一個項目,並已開始的人,但結果表明兩個starter
和finisher
列1
和1
!
'#1054 - '字段列表'中的未知列'p.starter' – revo
@revo。 。 。固定。 –
執行,但結果包括起始者和結束者計數的'1'!真正的結果應該是3''starter'和1''finisher' – revo