从mysql查询中的两个表返回数据

时间:2015-02-19 17:09:57

标签: mysql count

我的数据库中有两个表;团体和成员。 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行。

1 个答案:

答案 0 :(得分:0)

执行此操作的标准方法是使用COUNT()LEFT JOINGROUP 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的索引。