У меня есть две таблицы «Сообщения» и «Нравится» в «тестовой» базе данных. Таблица «Likes» просто состоит из двух внешних ключей, «username», указывающего на третью таблицу, и «message_id», который связывает ее с «Messages».
Я хочу найти все сообщения, которые имеют определенное значение для атрибута network_id, а также вернуть количество «лайков» каждого из этих сообщений. Я попытался сделать следующий запрос:
SELECT
`Messages`.`message_id` AS id,
`Messages`.`latitude` AS lat,
`Messages`.`longitude` AS lon,
`Messages`.`text` AS message,
`Messages`.`network_id` AS network,
`Messages`.`poster_name` AS user,
COUNT(*) AS numLikes
FROM `test`.`Messages` LEFT JOIN `test`.`Likes` on `Messages`.message_id = `Likes`.message_id
WHERE `Messages`.network_id = 2
GROUP BY
`Messages`.`message_id`,
`Messages`.`latitude`,
`Messages`.`longitude`,
`Messages`.`text`,
`Messages`.`network_id`,
`Messages`.`poster_name`
LIMIT 50;
но проблема в том, что если в сообщении есть ZERO-лайки, то numLikes в этом сообщении все еще имеет значение "1". Если в сообщении нет «Likes», строка сообщения должна быть возвращена, но numLikes имеет значение 0. Может ли кто-нибудь указать мне правильное направление?