我需要一些MySql查询的帮助。我现有的查询返回所有以100001作为query_id的行,按priceperadult ASC排序。
但是,我希望它只返回每家酒店的最佳价格,所以需要在语句中添加,以便每家酒店只显示一个价格,实现这一目标的最佳方法是什么?
SELECT * FROM `search_results` WHERE `query_id` = '100001' ORDER BY `priceperadult` ASC
示例数据query_id, priceperadult, hotel_name
100001, 100,酒店1
100001, 200,1号酒店
100001, 100,酒店2
100001, 200,2号酒店
听起来你想使用min()
:
SELECT query_id, MIN(priceperadult), hotel_name
FROM search_results
WHERE query_id = '100001'
GROUP BY query_id, hotel_name