MYSQL COUNT查询麻烦

时间:2014-04-17 17:15:56

标签: php mysql sql

我有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)

非常感谢任何帮助。 提前谢谢。

2 个答案:

答案 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