2013-10-07 32 views
0

感謝大家,讓我這麼多!下面的工作,但我不知道如何返回多個行,包括所有當前的列名稱。我知道當前語句寫入的方式,它是SUPPOSED只返回一行。然而,我已經嘗試了幾個子查詢示例,但我的總和列總是被排除在結果之外。任何幫助將是真棒和謝謝。MySQL返回具有多個連接和多個總和的多行

SELECT 
club.id, 
club.name, 
club.status, 
users.firstname, 
users.lastname, 
users.rights, 
SUM(job.status > '0') AS total, 
SUM(job.status = '1') AS incomplete, 
SUM(job.status = '2') AS pending, 
SUM(job.status = '3') AS live, 
SUM(job.status = '4') AS closed 
FROM club 
LEFT JOIN surveys 
ON job.club_id = club.id 
LEFT JOIN users 
ON users.id = job.users_id 
WHERE job.status > 0 
+0

我不明白你的問題。你期望看到什麼與你實際看到的是什麼? – miyasudokoro

+0

多行,我無法弄清楚如何做一個子查詢,包括總和列(即總計,不完整,掛起,活,關閉)。我可以用上面的所有數據獲得單行,但是當我嘗試格式化爲子查詢時,我得到多行但沒有(總數,不完整,掛起,活,關閉)。 – MichaelM

回答

0

我不完全確定你要做什麼,但這裏有一個基本問題:你沒有GROUP BY語句。當你使用像SUM這樣的分組函數時,它會告訴mysql你想把結果分組在一起。如果省略GROUP BY,它會將所有內容分組到一行中。如果你想有每個用戶一個行(我假設是這樣,因爲你選擇自己的名字),你應該說

GROUP BY users.id 

在查詢結束。

如果這沒有得到您要找的結果,請發表您使用假數據的結果示例,我可以給您一個更詳細的答案。

+0

WOW我現在覺得自己有多愚蠢,GROUP BY就是答案。謝謝一堆。顯然,我陷入了長期看問題的陷阱,我忽略了本該顯而易見的事情。 – MichaelM