그래서 내 쿼리에 문제가 있습니다.SQL COUNT 반환 된 잘못된 번호
과정 :
이 테이블의 user_id
코스의 강사 난 2 개 테이블.
-----------------------------------------------------------------------
| course_id | user_id | course_name | other information |
-----------------------------------------------------------------------
| 6 | 1 | My Course 1 | ... |
-----------------------------------------------------------------------
my_courses :
이 테이블의 user_id
코스의 학생입니다.
--------------------------------------------------
| user_id | course_id | created_at |
--------------------------------------------------
| 5 | 6 | [UNIX_TIMESTAMP] |
--------------------------------------------------
는 물론 가입 한 사람들의 수를 포함합니다. 나는 모든 과정 정보와 코스에 가입 한 사람들의 수를 얻고 싶습니다. 코스에 참여한 사람의 수를 제외하고 모두 예상대로 반환됩니다.
SELECT
courses.*,
users.name, //This is the name of the instructor
users.last_name, //This is the last name of the instructor
COUNT(my_courses.user_id) as count_students
FROM courses
LEFT JOIN users
ON courses.user_id = courses.user_id
LEFT JOIN my_courses
ON courses.course_id = my_courses.course_id
WHERE courses.course_id = '6'
내가 말했듯이,이 쿼리는 정상처럼 코스 정보를 반환하지만 그것은 단지 1
을 반환해야 할 때 count_students
로 3
를 반환 : 이것은 내가 사용하고 쿼리입니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까? 어떤 도움이라도 대단히 감사합니다.
올바른 RDBMS에 태그를 지정하십시오. 올바른 카운트를 얻으려면 GROUP BY 절이 필요합니다. –
아마도 'my_courses' 테이블이 아닌 반환 된 행을 계산하고있을 것입니다. – MikeVelazco
샘플 데이터가 질문에 도움이되지 않습니다. –