您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MYSQL:COUNT与GROUP BY,LEFT JOIN和WHERE子句不返回零值

MYSQL:COUNT与GROUP BY,LEFT JOIN和WHERE子句不返回零值

它返回零行的原因是您正在对table_1中的值进行分组。由于table_1中没有值,因此没有要返回的行。换句话说,如果您从GROUP BY中返回查询中的t1.any_col像这样:

SELECT `t1`.`any_col`, COUNT(`t2`.`name`) 
FROM `table_1` `t1` 
    LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id` 
WHERE `t1`.`another_column` = 123 
GROUP BY `t1`.`any_col`

没有行时,t1.any_col将显示什么?实现所需目标的唯一方法是将结果与另一个检查table_1中没有行的查询合并。在此示例中,我仅使用INFORMATION_SCHEMA视图来查询某些内容

SELECT COUNT(`t2`.`name`) 
FROM `table_1` `t1` 
    LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id` 
WHERE `t1`.`another_column` = 123 
GROUP BY `t1`.`any_col` 
UNION ALL
SELECT 0
FROM INFORMATION_SCHEMA.TABLES
Where Not Exists( Select 1 From `table_1` )
LIMIT 1
MySQL 2022/1/1 18:27:52 有558人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶