2014-04-17 102 views
-2

我有3个表,我将在下面简化来说明我的问题。MYSQL COUNT查询问题

1)模块表

| moduleId | moduleName | courseId | 

2)视频表

| videoId | videoName | duration | moduleId | 

2)指出表

| noteId | userId | videoId | 

我已经写了一个查询来获取以下信息:

对于每个n OTE在说明表,拿到MODULENAME和videoName它属于

SELECT module.moduleName, videos.videoName 
FROM videos,module,notes 
WHERE notes.userId = '$userId' 
    AND notes.videoId = videos.videoId 
GROUP BY videos.videoId 

但我的问题是,我想在笔记来算每部影片,有多少票据属于它(具有给定的videos.videoId .videoId字段)

希望有任何帮助。 在此先感谢。

+0

看看文档:https://dev.mysql.com/doc/refman/5.1/en/counting-rows.html – WASasquatch

回答

1

您可以使用加入得到计数为每个视频有多少票据属于它刚刚加入笔记表与普通视频ID,并通过与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 
做组
+0

非常感谢! – FootsieNG

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