SQL主表关联子表获取主表所有数据加子表数量
可以使用子查询和关联查询来实现主表关联子表,并获取主表所有数据加子表数量的需求。
假设有两张表:主表为main_table,子表为sub_table,它们之间通过主键id进行关联。
可以使用以下SQL语句来实现主表关联子表并获取主表所有数据加子表数量的需求:
SELECT m.*, COALESCE(s.sub_count, 0) AS sub_count
FROM main_table m
LEFT JOIN (
SELECT main_id, COUNT(*) AS sub_count
FROM sub_table
GROUP BY main_id
) s ON m.id = s.main_id;
解释如下:
- 子查询
SELECT main_id, COUNT(*) AS sub_count FROM sub_table GROUP BY main_id用于统计子表中每个主表对应的子表数量。 - 主查询使用
LEFT JOIN将主表和子表的统计结果关联起来,使用COALESCE(s.sub_count, 0)来处理没有子表的情况,使其返回0。 - 最终查询结果包括主表的所有字段
m.*,以及子表数量sub_count。
这样,就可以获取到主表所有数据加子表数量的结果
原文地址: https://www.cveoy.top/t/topic/ibOI 著作权归作者所有。请勿转载和采集!