我有 3 个表(注意这可能不是最好的 sql db 设计)
Room: TypeName, RoomNumber
RoomType: TypeName, ...
Reservation: StartDate, EndDate, TypeName, RoomNumber
我的输入参数是startdate
和enddate
。我想知道不同的roomtypes
可用。据我了解,解决方案是这样的:AvailableRoomTypes = AllRoomTypes - UnavailableRoomTypes
显然AllRoomTypes
可以通过以下方式找到:SELECT DISTINCT(TypeName) FROM Room;
并且我知道如何获得不可用的房间,但不是不可用roomtypes
的。我也不知道如何从另一组中减去一组。我可以获得一组全部rooms+roomtypes
和另一组不可用rooms+roomtypes
但我如何加入它们以便它是A-B
?也许某种NOT_CONTAINS
功能?
我希望我的输出参数是SELECT * FROM RoomType (for the appropriate roomtypes)
.