c# - 使用 "not in"子句连接两个以上的表

标签 c# mysql visual-studio-2010

您能否告诉我在哪里可以内连接 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/

相关文章:

c# - 为扩展方法问题转换 IEnumerable<T>

c# - Linq 外连接与 where,需要帮助先选择

visual-studio-2010 - 如何在 C# 中设置用作小数点的字符?

c# - 为什么点击ToolStripMenuItem需要两次点击?

c# - 无法将派生类型隐式转换为其基本泛型类型

c# - 如果为 ApplicationException 指定了内部异常,则 WCF FaultException<ApplicationException> 失败

mysql - 如何在ruby中获取表名数组

php - 在使用 PHP 转换 JSON 数组中的 MySql 输出时卡住了

visual-studio-2010 - 报表查看器 11 (2012) Visual Studio 2010

c# - 如何将用户设计的窗体编译添加到工程中