2010-11-16 19 views
1

一個關鍵的引用數:計算我有下面的SQL查詢在不同的表

SELECT 
    g.name AS gname, 
    COUNT(u.id) AS noMembers, 
    f.name AS client, 
    p.name AS projectName, 
    g.formed_date AS formedDate 

FROM `groups` as g 
JOIN users AS u ON u.group_id = g.id 
JOIN users AS f ON g.client_id = f.id 
JOIN projects AS p ON p.group_id = g.id 

我試圖完成是這樣的:有一個SQL查詢來獲取當前的名字組中,其中的成員數(所有用戶都在同一個不同的表中,稱爲用戶),組當前正在處理的項目的名稱以及該組正在爲其工作的客戶端。這必須爲groups表中的每個組完成。

當我執行上述查詢時,它不會返回組內的用戶數,但會返回更多(不是表中的所有用戶),只有1行結果,儘管應該有更多。

回答

1

COUNT只會返回一個排爲全選。你想要做的是在JOIN語句之後使用GROUP BY。

GROUP BY g.name 

這會給你每行不同的組名。它也只會每組名返回一個結果爲客戶,項目名,和formedDate,因此,如果有這些每組內的多個不同的可能性,你可以通過多個列的詳細信息,例如要組:

GROUP BY g.name,f.name 
+0

謝謝!你只是幫我填補了我的sql知識中的一個很大的空白! – user253530 2010-11-16 20:31:11

+0

很高興能幫到你! – spanky 2010-11-16 20:32:36