繁体   English   中英

MYSQL COUNT 查询麻烦

[英]MYSQL COUNT query trouble

我有 3 个表,我将在下面简化以说明我的问题。

1) 模块表

| moduleId | moduleName | courseId |

2) 视频表

 | videoId | videoName | duration | moduleId |

2) 备注表

 | noteId | userId | videoId | 

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

对于notes表中的每个note,获取它所属的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 字段中有给定的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 

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM