MySQL按计数+值之和选择

MySQL按计数+值之和选择,mysql,count,comments,Mysql,Count,Comments,我有以下查询Wordpress DB 这将返回具有最多综合上下评级的评论的数据: $comment_query = $wpdb->get_results(" SELECT wp_comments.*, wp_comment_rating.*, (wp_comment_rating.ck_rating_up+wp_comment_rating.ck_rating_down) AS pop_comment FROM wp_comments, wp_comment_rating WHERE

我有以下查询Wordpress DB

这将返回具有最多综合上下评级的评论的数据:

$comment_query = $wpdb->get_results("
SELECT wp_comments.*, wp_comment_rating.*, (wp_comment_rating.ck_rating_up+wp_comment_rating.ck_rating_down) AS pop_comment 
FROM wp_comments, wp_comment_rating 
WHERE wp_comments.comment_post_ID = $post->ID 
AND wp_comments.comment_ID = wp_comment_rating.ck_comment_id 
AND wp_comments.comment_approved = 1 
ORDER BY pop_comment 
DESC 
LIMIT 1");
然而,我还想通过计算每条评论中匹配的评论父项的数量,将回复最多的评论考虑在内,然后将总数添加到我排序依据的pop_评论值中

基本上,我想获得一条评论的数据,该评论包含最多的综合回复和上/下评级


希望这是有意义的…

您可以通过子查询按注释\u父项获取计数

$comment_query = $wpdb->get_results("
SELECT wp_comments.*, wp_comment_rating.*, (wp_comment_rating.ck_rating_up+wp_comment_rating.ck_rating_down + (
    select count(*) from wp_comments c2 where c2.comment_parent=wp_comments.comment_ID
    )) AS pop_comment 
FROM wp_comments, wp_comment_rating 
WHERE wp_comments.comment_post_ID = $post->ID 
AND wp_comments.comment_ID = wp_comment_rating.ck_comment_id 
AND wp_comments.comment_approved = 1 
ORDER BY pop_comment 
DESC 
LIMIT 1");
这应该行得通

本质上,它只是一个子查询,用于获取注释\父项的总注释,然后将其作为SubQ/SubCount连接到字段

comment_query = $wpdb->get_results(" 
SELECT wp_comments.*, wp_comment_rating.*, (SubCount + pop_comment) AS total_rank,    (wp_comment_rating.ck_rating_up+wp_comment_rating.ck_rating_down) AS pop_comment  
JOIN (SELECT COUNT(*) as SubCount, comment_parent as Sub_ID FROM wp_comments GROUP BY comment_parent) as SubQ
ON wp_comments.comment_ID = SubQ.Sub_ID
FROM wp_comments, wp_comment_rating  
WHERE wp_comments.comment_post_ID = $post->ID  
AND wp_comments.comment_ID = wp_comment_rating.ck_comment_id  
AND wp_comments.comment_approved = 1  ORDER BY total_rank  DESC  LIMIT 1"); 

您还需要单独的行评级吗?应该很简单。。可能只需左键加入一个子查询,选择总注释父项,然后将结果添加到pop\u注释中。。。注释\父项存储在哪里?在同一个表中?我只想要一个匹配项,但我需要wp_评论表和wp_评论评分表中该匹配项的所有数据。是的,注释_父项在wp_评论表中。感谢您花时间这样做!非常有帮助!这个解决方案同样有效,但我选择了上面的一个,因为它更有效。感谢您的回复!在我发帖后,我注意到你的结尾有一个限制1。。。我还发现另一种方法更有效,在这种情况下,我通过排名来考虑所有结果。。。不管怎样。。谢谢你的问题-永远爱通过答案工作!