Я не очень разбираюсь в MySQL-запросах, поэтому я мог бы сделать что-то неправильно. Упрощенные мой запрос, как это:AVG/COUNT Запрос MySQL НЕ работает
SELECT item.*, AVG(itemRating.rating) as 'rating', COUNT(itemRating.rating) as 'ratingCount'
FROM item, itemRating
WHERE item.id IN (...)
AND itemRating.item_fk = item.id
GROUP BY itemRating.item_fk
Он отлично работает, когда элемент не имеет рейтинга (нет записи в таблице itemRating), за исключением. Есть ли способ решить эту проблему без потери информации?
Как он может работать, если вы группируете неправильные столбцы? – zaratustra
Как вы имеете в виду «неправильные столбцы»? – sprunk
Вы пишете: 'SELECT item. *, AVG (itemRating.rating) как 'rating' ... GROUP BY itemRating.item_fk' Мне кажется, что вам нужно написать либо' SELECT itemRating.item_fk, AVG (itemRating.rating) как «рейтинг» ... GROUP BY itemRating.item_fk' или 'SELECT item. *, AVG (itemRating.rating) как 'rating' ... GROUP BY item. *' (Вы не можете написать элемент GROUP BY . * «Я сделал это, потому что я не знаю, какие столбцы у вас есть в таблице« item », вам нужно указать каждый столбец« item »в предложении GROUP BY]. – zaratustra