У меня возникли проблемы с запросом, который включает сумму, левое объединение и группу по
$sql = "
SELECT h.id AS hid
, SUM(l.likes) AS likes
FROM homes h
LEFT
JOIN likes l
ON l.homeid = h.id
GROUP
BY h.id
";
Вместо суммирования лайков для каждого дома, он дает NULL, если у дома нет лайков или число 8873, если оно имеет один лайк. Я действительно не могу понять 8873.
Следует отметить, что в этой таблице много лайков для других вещей, и в этом случае значение l.homeid равно NULL. Разве это может сбить с толку?
Редактировать:
Я добавил еще один лайк для homeid от другого пользователя, и теперь он дает мне 8906 вместо 8873 для тех, кто с 1 лайком и 17812 для одного с двумя лайками. Это очень странно. Тип данных для всех чисел int (11). Я собираюсь создать совершенно новую таблицу и посмотреть, делает ли она то же самое. Я также собираюсь удалить уникальный индекс, который я недавно добавил.