[英]MYSQL Counting the associated activities
因此,我需要一个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。)
请看一下这个数据库图 。
使用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`)
对于联接和函数count(),查询中存在语法错误。
尝试这个:
CREATE TABLE Childactivities AS
SELECT
CONCAT(c.child_fname,' ',a.child_sname) AS `name`,
COUNT(a.activity_id) AS `activities`
FROM Child c LEFT JOIN Childactivity a
ON a.child_id = c.child_id
GROUP BY c.child_id, `name`
感谢您的所有帮助人员,我在这里发布了工作结果:
SELECT CONCAT(`Child`.`child_fname`,' ',`Child`.`child_sname`) AS `name`,
COUNT(Activity.activity_id)
FROM Child
LEFT JOIN Childactivity ON Childactivity.child_id = Child.child_id
LEFT JOIN Activity ON Activity.activity_id = Childactivity.activity_id
GROUP BY CONCAT(`Child`.`child_fname`,' ',`Child`.`child_sname`)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.