【问题标题】:return data with count from two tables in mysql query从mysql查询中的两个表中返回带有计数的数据
【发布时间】:2015-04-21 03:50:39
【问题描述】:

我的数据库中有两个表;团体和成员。 组有以下列:id、name、description、owner_id、school_id members 有以下列:id、user_id、group_id

我想返回组中的所有记录,在每一行上,它应该对成员表执行计数以确定每个组有多少成员。

所以我的最终结果应该是这样的: id、name、description、owner_id、school_id、count(来自 members 表)

我一直在尝试,但有时当我只有 2 个组但有 3 个成员时,我会返回 5 行而不是 2 行。

【问题讨论】:

    标签: mysql count


    【解决方案1】:

    执行此操作的标准方法是使用 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 上有一个索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多