[英]4 table join and finding the average of a column
我有4張桌子
問題[id,review_id,分數]
應用邏輯=>對於每個餐廳的人們都可以進行評論,評論中有一些問題,問題總是一樣的,例如口味,交貨方式等。人們會在這些問題上給分數。
換而言之,用戶會針對一些問題對餐廳進行評論
現在,在我的Web應用程序中,我想在那里顯示帶有"Question table's score average"
的餐廳列表。
我正在使用laravel。 雄辯的查詢生成器也會有所幫助。 我想將總餐廳數據作為計算字段作為average_rating。
在這四個表中,您只需要一個標准的INNER JOIN即可,如下所示:
SELECT rs.name, avg(qt.score)
FROM Restaurant rs
JOIN Review rv ( rv.restaurant_id = rs.id )
JOIN User ur ( ur.id = rv.user_id )
JOIN Question qt ON ( qt.review_id = rv.id )
GROUP BY rs.name
ORDER BY avg(qt.score) desc, rs.name;
該理論可以解釋為:
所有評論都為餐廳安排
我們關注那些評論 餐廳的用戶
所有評論中都包含問題 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.