Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MYSQL计数查询问题_Php_Mysql_Sql - Fatal编程技术网

Php MYSQL计数查询问题

Php MYSQL计数查询问题,php,mysql,sql,Php,Mysql,Sql,我有3张表,下面我将简化这些表来说明我的问题 1) 模块表 | moduleId | moduleName | courseId | 2) 视频表 | videoId | videoName | duration | moduleId | 2) 注释表 | noteId | userId | videoId | 我编写了一个查询以获取以下信息: 对于notes表中的每个备注,获取其所属的moduleName和videoName SELECT module.moduleName, vi

我有3张表,下面我将简化这些表来说明我的问题

1) 模块表

| moduleId | moduleName | courseId |
2) 视频表

 | videoId | videoName | duration | moduleId |
2) 注释表

 | noteId | userId | videoId | 
我编写了一个查询以获取以下信息:

对于notes表中的每个备注,获取其所属的moduleName和videoName

SELECT module.moduleName, videos.videoName 
FROM videos,module,notes 
WHERE notes.userId = '$userId' 
  AND notes.videoId = videos.videoId 
GROUP BY videos.videoId
但我的问题是,我想计算每个视频,有多少笔记属于它(在notes.videoId字段中有给定的videos.videoId)

非常感谢您的帮助。 提前感谢。

试试这个:

SELECT m.moduleName, v.videoName 
FROM notes as n
LEFT JOIN videos as v on v.videoId=n.videoId
LEFT JOIN module as m on m.moduleId=v.moduleId
WHERE n.userId = '$userId' 
GROUP BY v.videoId

您可以使用join来获取每个视频中有多少个注释属于它,只需使用公共videoId连接注释表并使用videoId进行分组即可

SELECT v.*,m.moduleName,
COUNT(n.videoId )
FROM videos v
LEFT JOIN notes n USING(videoId)
LEFT JOIN modules m ON(v.moduleId =m.moduleId )
GROUP BY v.videoId 
查看文档: