2014-04-17 3 views
-2

아래 표를 단순화하여 3 가지 문제를 설명합니다.MYSQL COUNT 쿼리에 문제가 발생했습니다.

1) 표를 모듈

| moduleId | moduleName | courseId | 

2) 비디오 테이블

| videoId | videoName | duration | moduleId | 

2) 노트 나는 다음과 같은 정보를 얻을 수있는 쿼리를 작성했습니다

| noteId | userId | videoId | 

테이블 :

모든 n에 대해 OTE는 노트 테이블에서 모듈 이름을 얻을하고

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

에 속하지만 내 문제는 내가 주석에 각각의 비디오, 얼마나 많은 메모가 (여기에 속한다을 위해 주어진 videos.videoId을 계산 할 것입니다 videoName .videoId 필드)

도움이 되셨습니까? 미리 감사드립니다.

+0

문서를 살펴보십시오. https://dev.mysql.com/doc/refman/5.1/ko/counting-rows.html – WASasquatch

답변

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 
에 의해 그룹을 조인 사용할 수 있습니다

+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 
관련 문제