首页 > 解决方案 > MYSQL 统计相关活动

问题描述

所以我需要一个MySQL查询表的查询,child然后每个孩子都有活动。活动在相关表中。我想显示每个孩子的名字(fname +sname)和他们拥有的活动数量。

这是我到目前为止所拥有的,但它返回一个错误:

CREATE TABLE Childactivities AS
SELECT CONCAT(`Child`.`child_fname`,' ',`Child`.`child_sname`) AS `name`
FROM Child
count activity_id as `activities`
FROM Childactivity
LEFT JOIN Childactivity
ON Childactivity.child_id=Child.child_id
GROUP BY Child.child_id

输出应分为两列:子名(名字和姓氏)和相关活动的计数。(对于没有相关活动的孩子,这将为 0。)

请看一下这个数据库图

标签: mysql

解决方案


用于LEFT JOIN让所有有或没有活动的孩子

SELECT CONCAT(`Child`.`child_fname`,' ',`Child`.`child_sname`) AS `name`, COUNT(activity.activity_id)
FROM Child
LEFT JOIN Childactivity ON Childactivity.childId = Child.child_id
LEFT JOIN activity ON activity.activity_id = Childactivity.activity_id
GROUP BY CONCAT(`Child`.`child_fname`,' ',`Child`.`child_sname`)

推荐阅读