У меня есть модель Food и модель Review. в моей таблице отзывов в базе данных у меня есть два столбца: food_id
и rate
. Каждый пользователь может оценивать продукты и оценивать их как целое число от 1 до 5.
Мне нужно получить все записи в таблице продуктов и столбец среднего показателя в обзорах, где food_id - это идентификатор каждого продукта.
$foods = Food::join('reviews', 'foods.id', '=', 'reviews.food_id')->select(
'foods.*',
'AVERAGE(reviews.rate) WHERE reviews.food_id = foods.id AS food_rate'
)->get();
И, конечно, этот код будет повышаться SQLSTATE[42000]: Syntax error
Как я могу соединиться со средним значением столбца в другой таблице?
SELECT foods.*, AVG(reviews.rate) AS food_rate
FROM foods
LEFT OUTER JOIN reviews
ON reviews.food_id = foods.id
GROUP BY foods.id
на самом деле это MYSQL код должен быть написан с Laravel