SELECT game_ratingstblx245v.game_id,avg( game_ratingstblx245v.rating )
as avg_rating,
count(DISTINCT game_ratingstblx245v.userid)
as count,
game_data.name,
game_data.id ,
avg(game_ratings.critic_rating),count(DISTINCT game_ratings.critic)
as cr_count
FROM game_data
LEFT JOIN game_ratingstblx245v ON game_ratingstblx245v.game_id = game_data.id
LEFT JOIN game_ratings ON game_ratings.game_id = game_data.id
WHERE game_data.release_date < NOW()
GROUP BY game_ratingstblx245v.game_id
ORDER BY game_data.release_date DESC,
game_data.name
В настоящее время я использую этот запрос для извлечения значений из 3 таблиц
game_data - идентификатор (внешний ключ), имя, дата выпуска \ информация об играх
game_ratings - game_id (внешний ключ), критик, рейтинг \ критик рейтинг
game_ratingstblx245v - game_id (внешний ключ), рейтинг, идентификатор пользователя \ рейтинг пользователя
Что я хочу сделать с этим запросом, это выбрать все идентификаторы из таблицы game_data в порядке убывания release_date, а затем проверить среднюю оценку из таблиц game_ratings и game_ratingsblx245v, соответствующих отдельным идентификаторам (если игры не были оценены, результат должен вернуть значение null из полей последних двух таблиц) .. Теперь проблема, с которой я сталкиваюсь, заключается в том, что результат не соответствует ожидаемому (некоторые игры, которые не были оценены, отображаются, а другие нет), можете ли вы, ребята, проверить мой запрос и скажите мне, где я ошибаюсь, если так ... Спасибо