我一直在嘗試破解一個 sql 問題,我必須在那里顯示所有東西都超過 10 英鎊的餐廳的名稱和選單的結果。嘗試了幾次迭代,我相信使用是解決方案,我無法回傳值,而是收到警告。有任何想法嗎?這是與問題相關的ER圖:

SELECT DISTINCT
restaurant.name AS 'restaurant',
food_item.name AS 'item',
food_item.price AS 'price'
FROM restaurant JOIN food_item
GROUP BY restaurant.name
HAVING min(food_item.price) > 10.00
uj5u.com熱心網友回復:
你很親近。使用此行代替您擁有的行
FROM restaurant JOIN food_item ON restauraunt.id=food_item.restaurant_id
您需要在 JOIN 子句中使用 ON 條件,否則您將獲得餐廳和食品的所有可能組合,這些組合既大又毫無價值。
uj5u.com熱心網友回復:
您使用 group by、Min() 和 Join:
select *
from restaurant r
inner join (
select restaurant_id, min(price) minPrice
from food_item
group by restaurant_id) p on r.id = p.restaurant_id
where p.minPrice > 10;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/324637.html
上一篇:合并兩個檔案并保留所有列
