поэтому у меня есть проблема с моим запросом. У меня есть 2 таблицы:SQL COUNT Return Wrong Number
курсы:
user_id
в этой таблице является инструктор курса.
-----------------------------------------------------------------------
| 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'
Как я уже сказал, этот запрос возвращает данные курса как нормальные, но возвращает 3
, как count_students
, когда он должен возвращать только 1
. Кто-нибудь знает, почему это происходит? Любая помощь приветствуется.
Пожалуйста, отметьте правильную СУБД. Для получения правильного подсчета вам понадобится предложение GROUP BY. –
Возможно, это подсчет возвращенных строк, а не только из таблицы 'my_courses' – MikeVelazco
Ваши данные не помогают ответить на вопрос. –