业务场景一:查询主表并带出与主表关联的子表的个数
实现方法:分组group by 子表外键
sql如下:
1 select 2 main.id id, 3 main.name name, 4 IFNULL(sub.num,'0') num 5 from 6 xx_main main 7 left join( 8 select count(1) num,main_id from xx_sub group by main_id 9 )sub ON main.id = sub.main_id 10 where main.id=#{id}
运行结果如下:
id | name | num |
89 | 孩子王 | 3 |
90 | 流星 | 1 |
分析:GROUP BY语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用COUNT,SUM,AVG等函数
结束语:个人感悟,不足之处还望各位不吝指教,谢谢!