2

我猜在某个地方有一个简单的解决方案,但它让我疯狂地试图让它工作。我想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 中完成,但如果可能的话,这就是我想要实现的。

4

1 回答 1

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
于 2012-08-22T13:25:12.430 回答