可以使用子查询和关联查询来实现主表关联子表,并获取主表所有数据加子表数量的需求。

假设有两张表:主表为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;

解释如下:

  1. 子查询SELECT main_id, COUNT(*) AS sub_count FROM sub_table GROUP BY main_id用于统计子表中每个主表对应的子表数量。
  2. 主查询使用LEFT JOIN将主表和子表的统计结果关联起来,使用COALESCE(s.sub_count, 0)来处理没有子表的情况,使其返回0。
  3. 最终查询结果包括主表的所有字段m.*,以及子表数量sub_count

这样,就可以获取到主表所有数据加子表数量的结果


原文地址: https://www.cveoy.top/t/topic/ibOI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录