mysql - 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。)
请看一下这个数据库图。
解决方案
用于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`)
推荐阅读
- database - 数据建模中的 SCD-2:如何检测变化?
- jmeter - 如何执行多个 Jmeter 脚本并为这些脚本生成 html 报告
- fft - NE10定点fft中的scaled_flag是什么意思?
- c - 获取dll最小和最大堆栈地址
- liferay - Liferay 7 如何覆盖/修改/获取对 Headless API 实现的访问权限?
- c# - 如何获取与已登录用户相关的信息?
- android - 如何使用意图到达android中的特定目录
- python - 如何安装英伟达 Apex
- ios - 如何列出谷歌驱动器根文件夹中的文件和文件夹
- javascript - 承诺所有处理所有捕获但仍继续