我目前在使用MySQL时遇到了烦人的问题。
我从一个点开始,我通过这个查询从我的数据库中获取酒店:
SELECT `Hotel`.*,
`Hotellocations`.`address`,
`Hotellocations`.`city`,
`Hotellocations`.`lat`,
`Hotellocations`.`lon`,
`Hotelfacilities`.`facilities`,
`hotel_rooms` AS `hotelroomS`
FROM `hotels` AS `Hotel`
LEFT JOIN `hotel_locations` AS `Hotellocations`
ON (`Hotel`.`hotelid` = `Hotellocations`.`hotelid`)
LEFT JOIN `hotel_facilities` AS `Hotelfacilities`
ON (`Hotel`.`hotelid` = `Hotelfacilities`.`hotelid`)
WHERE MATCH(`hotel`.`title`) AGAINST("+Amsterdam" IN BOOLEAN MODE)
AND `hotel`.`min_price` != 0 AND `Hotel`.`min_price` >= 0
AND `Hotel`.`max_price` <= 500
LIMIT 1
我现在正在尝试加入一张新桌子,桌子'hotel_rooms'有一个名为'num_people'的栏目,这表示有多少人可以入住这个房间。
我现在的问题是,如何加入此表?我试过内部加入这个,但是然后MySQL返回多行(来自hotel_rooms),因为一个酒店可能有多个房间..
我的酒店表是这样的:
id | hotelid | title | slug | description | min_price | max_price | stars | checkin | checkout
hotel_rooms表就像这样:
roomid | hotelid | ratetypeid | providerid | title | description | num_people | min_price | calendarcode
我真的希望你能帮助我.. :)如果您需要更多信息,请告诉我。
亲切的问候,
罗宾
答案 0 :(得分:1)
看起来您需要酒店提供的房间总数。不要直接加入hotel_rooms表,而是将连接设为,
join ( select hotelid, sum(num_people) as hotel_rooms
from hotel_rooms
group by hotelid) hr
on hr.hotelid = hotel.hotelid