我猜这里有一个简单的解决方案,但它让我疯狂试图让它发挥作用。我想在同一个表上执行两个SUM()
查询,但它们都有不同的WHERE
子句。
该表用于用户投票系统,因此用户对其他用户内容进行投票。我希望能够列出当前用户的活动(他们添加的内容/类别),并将其与有多少其他用户投票选出当前用户内容的详细信息相结合。
基本上我想在同一个表中组合下面的两个查询。
SELECT category_id,
SUM(content_add) AS content_add_count,
SUM(category_add) AS category_add_count
FROM table1 WHERE user_id = '" . $user_id . "' GROUP BY category_id
SELECT SUM(normal_vote) AS agree_votes
FROM table1
WHERE issued_by_user != '" . $user_id . "'
AND user_id = '" . $user_id . "'
AND plus = '1'
GROUP BY category_id
我已经尝试将第二个查询放在上面第一个查询中的另一个SUM()
中,但显然无法在MySQL中完成,但这就是我想要实现的目标。
答案 0 :(得分:4)
SELECT
category_id
,SUM(content_add) AS content_add_count
,SUM(category_add) AS category_add_count
,SUM(if(issued_by_user != '" . $user_id . "' AND plus = '1',normal_vote,0)) AS agree_votes
FROM table1
WHERE user_id = '" . $user_id . "'
GROUP BY category_id