繁体   English   中英

组sql查询

[英]Group sql query

我希望只有2个查询的查询,但我不知道如何开始...我的查询计算评论的正/负投票。

SELECT COUNT(id) AS votes_no FROM comments_votes WHERE vote = 0 AND id_comment = 1
SELECT COUNT(id) AS votes_no FROM comments_votes WHERE vote = 1 AND id_comment = 1

我将vars设置为负面和正面投票: $votes_no$votes_yes

然后我有一个最终的var: $votes_calc = $votes_yes - $votes_no;

如何只在一个查询中获得votes_yes,votes_no和votes_calc的数量?

非常感谢!

select vote,count(id)
from Comment_votes
group by vote
WHERE id_comment = 1
with rollup

with Rollup将在投票列中添加一个NULL值,在第二列中添加一个总值

select votes_no, votes_yes, votes_yes-votes_no as votes_calc
from (select sum(case when vote = 0 then 1 else 0 end) as votes_no,
             sum(case when vote = 1 then 1 else 0 end) as votes_yes
      from comments_votes
      where id_comment = 1) a

我合并查询得到评论和评论投票,它似乎工作:)

SELECT a.*, nb_votes, votes_yes-votes_no AS votes_calc
FROM comments AS a
LEFT JOIN (
    SELECT id_comment, COUNT(id) AS nb_votes,
    SUM(CASE WHEN vote = 0 THEN 1 ELSE 0 END) AS votes_no,
    SUM(CASE WHEN vote = 1 THEN 1 ELSE 0 END) AS votes_yes
    FROM comments_votes GROUP BY id_comment
) AS c ON (a.id = c.id_comment)
WHERE a.status = 'approved' AND a.id_post = 1 ORDER BY a.time ASC

谢谢你的回答:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM