使用“not in”子句加入两个以上的表

时间:2014-12-27 18:15:53

标签: c# mysql visual-studio-2010

你能告诉我在哪里可以INNER加入表格中的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);

1 个答案:

答案 0 :(得分:1)

您的查询中包含以下部分:

FROM tblrooms

您在join子句中定义了FROM,因此您应该将上面的代码修改为:

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

请注意,您没有提供太多信息,因此我在此猜测您的tablecolumn名称。另请注意,我没有选择任何新的columns。最后,请注意,如果问题适用于您的案例,则需要通过引用columns作为table的列来解决歧义。并格式化您的代码,很难阅读它。我没有对inner使用joins关键字,因为join默认为inner