假设有主表A和附表B,且它们之间存在外键关联(例如A表的id字段与B表的a_id字段关联),可以使用以下SQL语句查询B表中每个主键对应的记录数量:
SELECT A.id, COUNT(*) AS count
FROM A
LEFT JOIN B ON A.id = B.a_id
GROUP BY A.id;
这条语句会将A表和B表按照id和a_id进行左连接,然后根据A表中的每个id分组,并统计在B表中该id对应的记录数量。最终返回一个包含id和count两列的结果集。
如果想要查询所有主键及其对应的记录数量,即使某些主键没有对应的记录也要显示出来,则可以改为使用如下SQL语句:
SELECT A.id, COUNT(B.a_id) AS count
FROM A
LEFT JOIN B ON A.id = B.a_id
GROUP BY A.id;
这条语句与上一条语句类似,但是将COUNT(*)改为了COUNT(B.a_id),这样就只会统计在B表中存在a_id值的记录数量。同时由于使用了LEFT JOIN,在结果集中也会包含在B表中不存在对应记录的主键。