You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过comment_id关联,按Country统计commentmeta表中Great的数量?

解决方案

要实现按国家统计Voting为Great的次数,核心是通过comment_id将同一评论的Voting和Country记录关联起来,筛选出符合条件的记录后再分组统计。以下是两种可行的实现方式:

方式一:表自连接(JOIN)

通过将commentmeta表自身连接,分别筛选Voting和Country的记录,再通过comment_id关联,最后按国家分组统计:

统计单个国家(比如UK)的Great次数

<?php 
global $wpdb;
// 关联Voting=Great的记录和Country=UK的记录,统计数量
$votes = $wpdb->get_var("
    SELECT COUNT(DISTINCT c.comment_id) 
    FROM $wpdb->commentmeta c
    JOIN $wpdb->commentmeta v ON c.comment_id = v.comment_id
    WHERE c.meta_key = 'Country' 
      AND c.meta_value = 'UK'
      AND v.meta_key = 'Voting' 
      AND v.meta_value = 'Great'
");
echo '<div class="votes">'. $votes .'</div>';
?>

统计所有国家的Great次数(批量输出)

<?php 
global $wpdb;
// 获取所有国家对应的Great投票次数
$results = $wpdb->get_results("
    SELECT c.meta_value AS country, COUNT(DISTINCT c.comment_id) AS great_count
    FROM $wpdb->commentmeta c
    JOIN $wpdb->commentmeta v ON c.comment_id = v.comment_id
    WHERE c.meta_key = 'Country'
      AND v.meta_key = 'Voting' 
      AND v.meta_value = 'Great'
    GROUP BY c.meta_value
");

// 循环输出结果
foreach ($results as $row) {
    echo '<div class="votes">'. $row->country .': '. $row->great_count .'次</div>';
}
?>

方式二:条件聚合+子查询

先通过子查询筛选出所有Voting为Great的comment_id,再基于这些ID匹配对应的Country记录并统计:

<?php 
global $wpdb;
$results = $wpdb->get_results("
    SELECT 
        meta_value AS country,
        COUNT(*) AS great_count
    FROM $wpdb->commentmeta
    WHERE meta_key = 'Country'
      AND comment_id IN (
          SELECT comment_id 
          FROM $wpdb->commentmeta 
          WHERE meta_key = 'Voting' AND meta_value = 'Great'
      )
    GROUP BY country
");

foreach ($results as $row) {
    echo '<div class="votes">'. $row->country .': '. $row->great_count .'次</div>';
}
?>

原代码问题说明

你当前的代码仅筛选了meta_key='country'且meta_value='UK'的记录,但没有关联Voting=Great的条件,所以统计的是所有标记为UK的评论总数,而非其中Voting为Great的数量。上述两种方式都通过comment_id关联了Voting和Country的记录,确保只统计符合双重条件的评论。

内容的提问来源于stack exchange,提问作者Pepe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:06:18