Php 按用户角色筛选wordpress评论

Php 按用户角色筛选wordpress评论,php,mysql,sql,wordpress,Php,Mysql,Sql,Wordpress,尝试按特定用户角色筛选我的所有评论。在这种情况下,用户角色称为group1。这将仅在我删除时返回所有注释,其中m.meta\u key='wp\u capabilities'和m.meta\u value='group1' 从下面的查询中 $query = $wpdb->prepare( " SELECT * FROM $wpdb->comments c LEFT JOIN $wpdb->commentmeta cm ON c.comment_ID =

尝试按特定用户角色筛选我的所有评论。在这种情况下,用户角色称为group1。这将仅在我删除
时返回所有注释,其中m.meta\u key='wp\u capabilities'和m.meta\u value='group1'
从下面的查询中

$query = $wpdb->prepare( "
SELECT *
  FROM $wpdb->comments c
  LEFT 
  JOIN $wpdb->commentmeta cm 
    ON c.comment_ID = cm.comment_id
  LEFT 
  JOIN $wpdb->users u 
    ON c.user_id = u.ID
  LEFT 
  JOIN $wpdb->usermeta m 
    ON m.user_id = u.ID
 WHERE c.comment_post_ID = %s
   AND c.comment_approved = 1
 WHERE m.meta_key = 'wp_capabilities'
   AND m.meta_value = 'group1'
 ORDER 
    BY c.comment_ID $comment_order
                    ",
                    $post->ID);

您有两个
WHERE
子句,但即使在修复语法错误时,它也将充当
internaljoin
,因为WHERE子句中的外部表的过滤条件将外部联接转换为内部联接

LEFT JOIN
ON
子句本身中为外部表添加筛选器:

select *
from $wpdb - > comments c
left join $wpdb - > commentmeta cm on c.comment_ID = cm.comment_id
left join $wpdb - > users u on c.user_id = u.ID
left join $wpdb - > usermeta m on m.user_id = u.ID
    and m.meta_key = 'wp_capabilities'
    and m.meta_value = 'group1'
where c.comment_post_ID = % s
    and c.comment_approved = 1
order by c.comment_ID $comment_order

我更新了查询,数组中缺少一些值:用户ID和umeta_ID。这将返回语法错误。