如何显示不在tblreserve表的checkInDate和checkOutDate列范围内的房间?MySQL - 使用INNER JOIN在两个日期之间显示数据
tblcustomer
customerID | Fname | Lname
1 | John | Smith
tblreservation
reservationID | customerID | reserveDate | checkInDate | checkOutDate
1 | 1 | 2015-09-09 | 2015-09-10 | 2015-09-11
tblroom
roomID | roomTypeID | roomStatusID | roomNumber | floorNumber
1 | 1 | 1 | 101 | 1
2 | 2 | 1 | 102 | 1
3 | 3 | 1 | 103 | 1
tblroomreserve
roomID | reservationID
1 | 1
tblroomstatus
roomStatusID | roomStatus
1 | vacant
2 | occupied
3 | reserved
tblroomtype
roomTypeID | roomType
1 | Single Room
2 | Double Room
3 | Twin Room
我试过INNER JOIN但不是显示在未对一系列占领的两个输入的日期的tblroom表中的所有房间,只有它显示不在特定日期范围内的tblreserve表中的房间。即 '2015年9月12日' 和 '2015年9月13日'
SELECT
`tblroom`.`roomNumber`
, `tblroomtype`.`roomTypeDescription`
, `tblroomtype`.`roomRate`
FROM
`hotelreservation`.`tblreservation`
INNER JOIN `hotelreservation`.`tblcustomer`
ON (`tblreservation`.`customerID` = `tblcustomer`.`customerID`)
INNER JOIN `hotelreservation`.`tblroomreservation`
ON (`tblroomreservation`.`reservationID` = `tblreservation`.`reservationID`)
INNER JOIN `hotelreservation`.`tblroom`
ON (`tblroomreservation`.`roomID` = `tblroom`.`roomID`)
INNER JOIN `hotelreservation`.`tblroomstatus`
ON (`tblroom`.`roomStatusID` = `tblroomstatus`.`roomStatusID`)
INNER JOIN `hotelreservation`.`tblroomtype`
ON (`tblroom`.`roomTypeID` = `tblroomtype`.`roomTypeID`)
AND NOT tblreservation.`checkInDate` >= '2015-09-12' AND tblreservation.`checkOutDate` <= '2015-09-13'
提供用于查询的模式和模式不匹配 –
对不起。更正它。 –