表格
Hotel (hotelNo, HotelName, city)
Room (roomNo, hotelNo, type, price)
Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo)
Guest (guestNo, guestName, guestAddress)
根据上表给出下列查询的结构化查询语言语法:
给出 2009 年 5 月、6 月和 7 月的预订房间列表,价格大于每天 8000。
我尝试了以下方法,但它不起作用:
SELECT *
FROM Booking
WHERE HotleNo IN (SELECT HotelNo FROM Room WHERE Price>8000)
AND (DateFrom>= '2009-05-01' AND dateTo<= '2009-07-31');
最佳答案
价格是房间属性而不是酒店属性。但我猜你可能要处理几家房间号重叠的酒店,所以你必须匹配 roomNo 和 hotelNo
SELECT *
FROM Booking
JOIN Room on Booking.roomNo=Room.roomNo and Booking.hotleNo=Room.hotleNo
WHERE Room.Price>8000
AND Booking.DateFrom>= '2009-05-01'
AND Booking.dateTo<= '2009-07-31'
编辑:在你的问题中,该字段是 hotleNo 所以我会坚持使用该字段名称
关于mysql - 给出 2009 年 5 月、6 月和 7 月的预订房间列表,价格大于每天 8000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25385479/