我将尝试用两个案例来解释我的问题:
我的要求是每个酒店只获取一条记录,不重复,并且第二个排序应该是最低的酒店价格应该在顶部;
我的意思是,我需要将third_party_rate
作为1041
拉取的记录。
您可以查看以下以文本格式显示的MySQL代码:
SELECT h.hotel_id AS id,h.hotel_city AS city,h.hotel_name AS hotelname,h.hotel_star AS hotelcat,hwd.double_spl_rate, hwd.extra_bed_spl_rate,hwd.meal_plan_spl,hwd.third_party_rate,hwd.third_party_extra_bed, hwd.third_party_meal_plan,hwd.room_category,hrd.hotel_rate_from,hrd.hotel_rate_to FROM hotels_list AS h
INNER JOIN hotel_rate_detail AS hrd ON h.hotel_id = hrd.hotels_id
INNER JOIN hotel_week_days AS hwd ON hrd.hotel_id = hwd.h_id
WHERE ( ('2015-07-02' BETWEEN hrd.hotel_rate_from AND hrd.hotel_rate_to) OR ('2015-07-03' BETWEEN hrd.hotel_rate_from AND hrd.hotel_rate_to) ) AND (h.hotel_city = '1')
AND (hwd.double_spl_rate != 0 OR hwd.third_party_rate != 0) AND (h.hotel_star <= '2')
AND h.hotel_id = 364
GROUP BY h.hotel_id ORDER BY hwd.double_spl_rate,hwd.third_party_rate ASC;
请注意,上面的内容仅使用
id = 364
来展示结果,但实际上还有许多其他重复的旅馆ID也存在这种情况,因此我需要一般性的查询语句,不仅适用于id = 364
,而且适用于其他ID,这样我就可以用单个查询获得完整的结果。