Php 按用户角色筛选wordpress评论
尝试按特定用户角色筛选我的所有评论。在这种情况下,用户角色称为group1。这将仅在我删除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 =
时返回所有注释,其中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。这将返回语法错误。