У меня проблема с подсчетом таблицы, к которой присоединяются несколько раз.
Таблица question
:
+----+----------+
| id | question |
+----+----------+
| 1 | Foo? |
+----+----------+
Таблица answer
:
+----+-------------+--------+
| id | question_id | choice |
+----+-------------+--------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 1 | 1 |
| 4 | 1 | 2 |
| 5 | 1 | 3 |
| 6 | 1 | 3 |
+----+-------------+--------+
Ожидаемый результат:
+----------+-------+-------+-------+
| question | num_1 | num_2 | num_3 |
+----------+-------+-------+-------+
| Foo? | 3 | 1 | 2 |
+----------+-------+-------+-------+
(Неудачный) запрос и его результат:
SELECT
q.question AS question,
COUNT(a1.id) AS num_1,
COUNT(a2.id) AS num_2,
COUNT(a3.id) AS num_3
FROM
question q
LEFT JOIN answer a1 ON a1.question_id = q.id AND a1.choice = 1
LEFT JOIN answer a2 ON a2.question_id = q.id AND a2.choice = 2
LEFT JOIN answer a3 ON a3.question_id = q.id AND a3.choice = 3
GROUP BY
q.id
+----------+-------+-------+-------+
| question | num_1 | num_2 | num_3 |
+----------+-------+-------+-------+
| Foo? | 6 | 6 | 6 |
+----------+-------+-------+-------+
Я не понимаю, почему я получаю этот результат.Вы можете мне помочь?