使用GROUP BY的子查询中的MySQL COUNT

时间:2013-12-02 13:18:53

标签: mysql count group-by

我正在搜索和谷歌搜索很多,但它无助。 这是我的问题,这些表格是:

members

   id       name    address     fk_family
    1       Tony    A Street        1
    2       Miles   B Street        1
    3       Vic     C Street        1
    4       Luca    D Street        2
    5       Matt    E Street        3

visits

id      fk_member    date
1       1            2013-07-20
2       1            2013-07-22
3       1            2013-07-23
4       2            2013-07-22
5       3            2013-07-19
6       4            2013-07-21
7       4            2013-07-22
8       4            2013-07-23
9       5            2013-07-20
10      5            2013-07-23

我需要COUNT次访问,不是由人,而是由家人,我希望使用group by member.fk_family。 结果表应如下所示:

fk_family       visit_count
1               5
2               3
3               2

我无法找到正确的方法和正确的语法来执行此操作。在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

试试这个:

 select fk_member as family, count(v.fk_member) visit_count from members m
 inner join visits v on m.fk_family = v.fk_member
 group by v.fk_member

如果出现任何错误或错误数据,请告诉我。

答案 1 :(得分:1)

根据您的输出,您按fk_family分组,并fk_member加入成员的id。就像这样:

 SELECT
      m.fk_family AS fk_family,
      COUNT(v.id) AS visits_count
 FROM visits v
 JOIN members m
   ON v.fk_member = m.id
GROUP BY m.fk_family
相关问题