Я бы не рекомендовал обновлять таблицу грузовиков каждый раз, когда появляется новый обзор грузовиков (например, колонка avg_rating). Это создает сложность и дополнительные операции с базой данных, которых можно избежать.
Прежде всего, пожалуйста, подумайте, если вам нужно сохранить это значение в базе данных. Вы всегда можете извлечь его с помощью простого запроса, например:
SELECT AVG(star_rating) FROM truck_reviews WHERE truck_id = x
Но если вам действительно нужно увидеть его вместе в базе данных со всеми оставшимися данными о грузовиках, я рекомендую вам создать Просмотр . Вы можете запросить его так же, как вы запрашиваете таблицу. Чтобы создать его, вам нужно что-то вроде:
CREATE VIEW trucks_view AS
SELECT *,
(select AVG(star_rating) from trucks_reviews where truck_id = trucks.id) as 'avg_rating'
FROM trucks
И тогда вы можете запросить информацию о грузовике
SELECT * FROM trucks_view
Он вернет именно то, что вам нужно