[英]Select row in group by min of another column
嘿,你能幫我做一個簡單的 sql 查詢嗎?
表
酒店
id | name | country | rating
1 Bali bg 4.5
2 Beach uk 4.0
3 Blue sk 3.7
旅游
id | id_hotel | price
1 2 250
2 2 270
3 1 250
4 1 300
5 3 250
我想要這樣的東西
SELECT t.* FROM tour t LEFT JOIN hotel h ON t.id_hotel = h.id
WHERE h.country = uk GROUP BY h.id ORDER BY t.price
所以我想以最低的旅游價格為每家酒店安排一排。 最好使用Doctrine 2 queryBuilder。
感謝幫助。
嘿也許我有解決方案
SELECT MIN(tour.id), hotel.* FROM `tour` INNER JOIN (
SELECT MIN(t.final_price) as final_price, t.id_hotel FROM tour t GROUP
BY t.id_hotel) ht
ON tour.id_hotel = ht.id_hotel AND tour.final_price =
ht.final_price
LEFT JOIN hotel ON hotel.id = tour.id_hotel GROUP BY tour.id_hotel
使用 group by 和 order by 來完成你的結果,試試下面的查詢
select hotel.name,Tour.id,Tour.price,Hotel.rating from Hotel inner join Tour on Tour.id_hotel = Hotel.id group where hotel.country = 'uk' group by Tour.id_hotel order by Tour.price asc
讓我知道它是否有幫助
[編輯] 此查詢應該適用於您
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.