有没有办法调整以下 MYSQL 查询,使其只显示视频计数大于 0 的结果?我尝试了以下但它无法识别
video_count
SELECT channels.*,
(SELECT COUNT(*) FROM videos WHERE videos.video_publisher_id = channels.channel_id) as `video_count`
FROM channels
WHERE channel_active = 1
AND video_count > 0
AND channel_thumbnail IS NOT NULL
ORDER BY channel_subscribers DESC
最佳答案
将您的子查询从 SELECT
子句移动到 FROM
子句。内部联接保证匹配。
SELECT c.*, v.video_count
FROM channels c
JOIN
(
SELECT video_publisher_id, COUNT(*) AS video_count
FROM videos
GROUP BY video_publisher_id
) v ON v.video_publisher_id = c.channel_id
WHERE c.channel_active = 1
AND c.channel_thumbnail IS NOT NULL
ORDER BY c.channel_subscribers DESC;
关于mysql - 根据子查询计数返回 MYSQL 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47072005/