Mysql 将两个SQL语句与算术结合(本身不连接)

Mysql 将两个SQL语句与算术结合(本身不连接),mysql,select,Mysql,Select,我有一个插件,在我的网站“有用”、“有趣”、“酷”的评论中计算有用的票数,它还提供了添加其他描述符的选项。所以我添加了“没有帮助” 现在,我正试图自定义用于显示投票最多的评论的查询,方法是将“没有帮助”的投票从有帮助的投票中减去,而不是只计算所有投票的总数 因此,最初用于此的查询是: SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` GROUP BY review_id ORDER BY count DESC LIMIT

我有一个插件,在我的网站“有用”、“有趣”、“酷”的评论中计算有用的票数,它还提供了添加其他描述符的选项。所以我添加了“没有帮助”

现在,我正试图自定义用于显示投票最多的评论的查询,方法是将“没有帮助”的投票从有帮助的投票中减去,而不是只计算所有投票的总数

因此,最初用于此的查询是:

SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` GROUP BY review_id ORDER BY count DESC LIMIT 5
我发现我可以在“比率”列中的数字为0、1或2的情况下计算有用的选票,如下所示:

SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` where `rate` <3 GROUP BY review_id ORDER BY count DESC LIMIT 5
SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` where `rate` >2 GROUP BY review_id ORDER BY count DESC LIMIT 5
但我不知道如何组合这两个select语句,以便前5个“count”结果显示每个查询的计数差异

我不想要一个并集,因为没有进行减法运算,我尝试了多种选择的排列,但无法解决这个问题

有什么建议吗

示例表:

在上面的示例中,如果所有投票都是盲目统计的,则评审4的排名高于评审10,但如果考虑到没有帮助的投票,则评审4的排名高于评审10,净总数为1,而评审4的净总数为0

有意义吗?

试试这个:

select a.review_id,b.review_id,a.count,b.count from
(SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` where `rate` <3 GROUP BY review_id ORDER BY count DESC LIMIT 5) as a
left join
(SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` where `rate` >2 GROUP BY review_id ORDER BY count DESC LIMIT 5) as b
on a.review_id = b.review_id

只需将其添加到select语句中即可。像select review\u id,query1作为query1,query2作为query2 from…如果我想要两个独立的结果,我可以这样做,但是我想用第二个查询的结果更新查询返回的聚合总数。感谢您的来电,虽然您的第一个解决方案返回的不是我想要的:并且您的第二个解决方案返回一个错误:UNION和ORDER by的用法不正确,但是您可以删除ORDER by子句。。最近很忙。是的,但是排序依据很重要,否则它不会排在最有用的评论的前面。
SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` where `rate` <3 GROUP BY review_id ORDER BY count DESC LIMIT 5
union all
SELECT review_id, COUNT(*) AS count FROM `wp_reviews_ratings` where `rate` >2 GROUP BY review_id ORDER BY count DESC LIMIT 5