2016-12-13 141 views
1
SELECT users.xp, users.clan, clans.name, 

SUM(CASE WHEN users.clan = clans.name 
       THEN users.xp 
     END) AS total 
FROM users, clans 

WHERE users.clan = clans.name 

爲什麼此SQL查詢僅在多個部落打印出一條記錄,部族中有多個用戶使用xp。 它在給定的部族中打印出xp的正確總和,但我需要剩下的部族。只有一條記錄顯示

+1

閱讀有關GROUP BY(和MySQL更普遍) – Strawberry

+0

只能有1'''​​users'''表記錄有相匹配的一個氏族值'''clans'''表名列... – Anand

+1

@Dragos在本文中無關 – Strawberry

回答

1

當你使用一組功能,MySQL將通過聚合的結果爲單行「幫助」你。爲了讓每一個氏族一行,用GROUP BY

SELECT clans.name, SUM(users.xp) AS total 
    FROM users, clans 
WHERE users.clan = clans.name 
GROUP BY clans.name