繁体   English   中英

MYSQL计算相关活动

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM