我的数据库中有两个表;团体和成员。 groups包含以下列:id,name,description,owner_id,school_id 成员具有以下列:id,user_id,group_id
我想返回组中的所有记录,在每行上它应该对成员表执行计数以确定每个组有多少成员。
所以我的最终结果应该是这样的: id,name,description,owner_id,school_id,count(这是来自成员表)
我一直在尝试,但有时当我只有2组但有3名成员时,我会得到5行而不是2行。
答案 0 :(得分:0)
执行此操作的标准方法是使用COUNT()
,LEFT JOIN
和GROUP BY
:
SELECT g.*, COUNT(m.id) as member_count
FROM groups g
LEFT JOIN members m
ON m.group_id = g.id
GROUP BY g.id
为了提高效果,请确保您拥有members.group_id
的索引。