Mysql 如何使用另一个元键获取usermeta键的和值

Mysql 如何使用另一个元键获取usermeta键的和值,mysql,wordpress,Mysql,Wordpress,我有两个元键:美国点和代理id 我需要对每个用户的代理ID相同的所有us_积分值进行汇总 以下是我尝试过的: $cuser = wp_get_current_user(); $a_id = $cuser->agent_id; global $wpdb; $result = $wpdb->get_col("SELECT sum(meta_value) FROM $wpdb->usermeta WHERE meta_key = 'us_points' AND agent_id =

我有两个元键:美国点和代理id

我需要对每个用户的代理ID相同的所有us_积分值进行汇总

以下是我尝试过的:

$cuser = wp_get_current_user(); $a_id = $cuser->agent_id; 
global $wpdb;
$result = $wpdb->get_col("SELECT sum(meta_value) FROM $wpdb->usermeta WHERE meta_key = 'us_points' AND agent_id = $a_id" );
echo $result[0];
如果我删除并且agent_id=$a_id,它将显示网站中所有用户的总和,但我只需要显示agent_id中的元键值common/matching的总和


非常感谢您的帮助。

试试这个,它应该以代理id元键为目标,然后在求和之前按相同的代理id值对记录进行分组

$result = $wpdb->get_col("SELECT sum(meta_value) FROM $wpdb->usermeta WHERE meta_key = 'us_points' GROUP BY meta_value HAVING 'meta_key' = 'agent_id'" );
$agent\u点
预计位于结构中:

Array
(
    [0] => Array
        (
            [agent_id] => 1
            [us_points] => 30
        )

    [1] => Array
        (
            [agent_id] => 4
            [us_points] => 10
        )

    [2] => Array
        (
            [agent_id] => 4
            [us_points] => 30
        )

    [3] => Array
        (
            [agent_id] => 1
            [us_points] => 20
        )
)
那么

agent\u id=>us\u点对中预期
$results

Array
(
    [1] => 50
    [4] => 40
)

那么,每个用户都有us_点数和代理id?你想要每个探员的总积分吗?@SanzeebAryal是的!所有用户的us_点相同或不同,但agent_id对于用户组具有公共值。与用户a一样,b、c的代理id为100,它们的us_点数变化为a=200、b=300、c=400。。因此,用他们的共同代理人id=100来总结美国点。。希望您理解。它不会工作,因为我需要指定元值。比如meta_key=$a_id。试着让meta_key='agent_id'和meta_value=$a_id仍然不起作用。。这是我的代码:global$wpdb$结果=$wpdb->get_col(“从$wpdb->usermeta中选择sum(meta_值),其中meta_键='us_points'按meta_值分组,meta_值具有'meta_键'='agent_id'和'meta_值'='10');
$results= array();

foreach( $agent_points as $values ) {
   foreach( $values as $key => $value ) {

        if( 'agent_id' === $key ) {
            $results[ $value ] += $values['us_points'];
        }
   }
}
Array
(
    [1] => 50
    [4] => 40
)