这是我尝试过的SQL请求:
SELECT COUNT(DISTINCT um.user_id)
FROM wp_usermeta um
LEFT JOIN wp_users u ON um.user_id = u.ID
LEFT JOIN wp_posts p ON u.ID = p.post_author AND p.post_status = 'publish' AND p.post_type = 'post'
WHERE p.post_date >= '2013-03-15'
AND u.user_login NOT LIKE 'LOCKED-%'
AND um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%writers%'
AND COUNT(um.user_id) >= 2
最后一行:
AND COUNT(um.user_id) >= 2
导致一些错误。
有没有办法让um.user_id重复至少两次或更多?
答案 0 :(得分:4)
由用户分组并使用having
子句在每个组上应用count
等聚合函数
select count(*) from
(
SELECT um.user_id
FROM wp_usermeta um
LEFT JOIN wp_users u ON um.user_id = u.ID
LEFT JOIN wp_posts p ON u.ID = p.post_author AND p.post_status = 'publish' AND p.post_type = 'post'
WHERE p.post_date >= '2013-03-15'
AND u.user_login NOT LIKE 'LOCKED-%'
AND um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%affiliate_pay_per_publish%'
GROUP BY um.user_id
HAVING COUNT(*) >= 2
) alias_name