大家。我的在线酒店预订工作有问题,所以我有很多表格如下:
tbRoom(RoomID,RoomName,...)
tbReservation(ResID,ResDate,....)
tbReservationDetail(ResID,RoomID,ArrvialDate,DepartureDate,....)
当我编写SQL查询时我的问题是错误像这样。
Select * from tbRoom as R where R.RoomID !=(select RD.RoomID from tbReservationDetail as RD where ArrivalDate < '2013-12-20' AND DepartureDate > '2013-12-17')
这是错误:
unknown table status: TABLE_TYPE
出于我的目的:我希望在两个日期之间获得房间。
所以,我怎么做?
请帮帮我,谢谢你的帮助....
答案 0 :(得分:1)
您可以尝试:
Select * from tbRoom as R where R.RoomID NOT IN (select RD.RoomID from tbReservationDetail as RD where RD.ArrivalDate < '2013-12-20' AND RD.DepartureDate > '2013-12-17')
解释:首先,您应该使用 NOT IN 而不是!= ,因为您的子查询是列表,其次是您的子查询,您应该在 WHERE 条件中使用表格别名 RD 。
答案 1 :(得分:0)
使用not in
代替!=
,不需要命名表
Select * from tbRoom where RoomID not in (select RoomID from tbReservationDetail where ArrivalDate < '2013-12-20' AND DepartureDate > '2013-12-17')
答案 2 :(得分:0)
您必须将phpmyadmin版本更新为3.4.0 error in phpmyadmin 更新版本,它将解决您的问题