私は質問に問題があります。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
あなたのサンプルデータは質問に役立ちません。 –