У меня есть следующие три таблицы в базе данных MySQL для оценки пользователей:
Users:
id name
-----------
1 Smith
2 Brown
Comments:
id user_id post_id comment
-----------------------------------
1 2 1 Test 1
2 1 1 Test 2
3 1 1 Test 3
Scores:
id user_id comment_id score
------------------------------------
1 1 1 1
Теперь я хочу выбрать все комментарии для post_id = 1
, а также имя пользователя и сумму всех баллов для этого конкретного комментария. Сначала это выглядит очень просто, я пришел с этим запросом:
SELECT users.name, comments.comment, SUM(scores.score) AS score
FROM comments
LEFT JOIN users ON users.id = comments.user_id
LEFT JOIN scores ON scores.comment_id = comments.id
WHERE comments.post_id = 1
GROUP BY scores.comment_id
Кажется, это работает, но когда нет оценки для конкретного комментария, комментарий не появляется, потому что MySQL не может GROUP BY NULL
, я думаю Итак, есть ли способ включить эти комментарии без рейтинга? Как это:
Query result:
name comment score
-------------------------
Brown Test 1 1
Smith Test 2 0
Smith Test 3 0