mysql - 根据子查询计数返回 MYSQL 结果?

标签 mysql sql

有没有办法调整以下 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/

相关文章:

mysql - 如何在mysql中根据2个日期选择记录

java - 无法获取锁异常: lock wait timeout exceeded spring sql

php - cron 作业被触发而不是在特定时间并且不重复

mysql - 使用日期时间列中的日期查询 mysql 中的数据

sql - PostgreSQL:如果我为每个表定义一对一 View 并仅从 View 层进行查询,是否会使用基础表的索引?

sql - 在 PostgreSQL 中将列数据转换为行

c# - 在 MySQL 中存储文本和音频文件

.net - 获取错误 : System. IO.FileNotFoundException:无法加载文件或程序集

SQL 代理作业 - "Run As"下拉列表为空

sql - 如何使用 Join(链接服务器)进行更新