您能否告诉我在哪里可以内连接 FK_roomTypesID、FK_BedTypeID 和 FK_roomViewsID 的表?所有 FK 都位于与主表不同的表上。
MySqlDataAdapter da = new MySqlDataAdapter("SELECT RoomNo, RoomBedsNo,
RoomSmoking, RoomMiniBar,RoomKitchen,RoomFirePlace,RoomBalcony, RoomVeranda,
RoomGarden, RoomEntrance, RoomAirCondition, RoomTV, FK_roomTypesID,
FK_BedTypeID, FK_roomViewsID FROM tblrooms WHERE roomsID NOT IN(SELECT FK_roomsID
FROM tblbooking WHERE '" + arrdate + "' < checkOutDate AND '" + depdate + "' >
checkInDate)", conn);
最佳答案
您的查询中有以下部分:
FROM tblrooms
您在 FROM
子句中定义了 join
,因此您应该将上面的代码修改为:
FROM tblrooms
join tblroomtypes
on tblrooms.FK_roomTypesID = tblroomtypes.roomTypesID
join tblbedtypes
on tblrooms.FK_bedTypesID = tblbedtypes.bedTypesID
join tblroomviews
on tblrooms.FK_roomViewsID = tblroomviews.roomViewsID
请注意,您没有提供太多信息,因此我猜测您的表
和列
名称。另请注意,我没有选择任何新的列
。最后,请注意,如果问题适用于您的情况,您需要通过将您的列
引用为表
的列来解决歧义。并且格式化你的代码,很难阅读。我没有在 joins
中使用 inner
关键字,因为 join
默认情况下是 inner
。
关于c# - 使用 "not in"子句连接两个以上的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27670120/