我有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)
非常感谢任何帮助。 提前谢谢。
答案 0 :(得分:1)
您可以使用联接来获取每个视频的计数,只需将公共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
答案 1 :(得分:0)
试试这个:
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