我有三个表:成就表、字符表和Character_Achievements表,它们存储已完成成果的id和用户id。我期待得到每一个类别,总数量的积分可能和数量也完成了。
我能够得到每个类别和数量的可能,但我在检索完成的计数,以及不成功。
我现在用它来获取每个类别和可能的点数。
SELECT achievements.category, SUM(points) AS Total
FROM achievements
GROUP BY achievements.category ORDER BY achievements._id asc我得到了这些结果。
Category Total
Operations 50
Events 25我也可以得到积分的数量。
SELECT achievements.category, SUM(points) AS Completed
FROM achievements
LEFT JOIN character_achievements
ON character_achievements.achievements_id = achievements._id
LEFT JOIN character
ON character_achievements.character_id = character._id
WHERE character._id = '1'它只返回已完成的类别。如何将这两个查询组合在一起。已完成的业务50项活动25
我试过UNION,但它没有返回我需要的结果。这是我的示例表
成就表
Category Title Points
Operations Epic Enemies 25
Operations Explosive Conflict 25
Events Bounty Contract 25Character_Achievements表
Character Character_id Achievements_id
Operations 1 1
Events 1 3我想要的结果会是这样的。
结果
Category Completed Total
Operations 25 50
Events 25 25我能
发布于 2014-09-18 19:23:26
如果我正确理解了你的问题,你可以用SUM和CASE
SELECT a.category,
SUM(CASE WHEN ca.achievements_id is not null then points end) AS Completed,
SUM(points) Total
FROM achievements a
LEFT JOIN character_achievements ca
ON ca.achievements_id = a._id
GROUP BY a.category
ORDER BY a._id aschttps://stackoverflow.com/questions/25920550
复制相似问题