【问题标题】:Inner join with 3 tables in Visual Studio在 Visual Studio 中使用 3 个表进行内部联接
【发布时间】:2016-04-13 12:40:45
【问题描述】:

我正在尝试在 Visual Studio 中对 3 个表进行内部联接,但出现错误。当我只使用 2 个表进行内部连接时,它可以工作。

这是我的 3 个表格的代码:

"select b.bidID, b.userID, u.userFirstName, u.userLastName, c.clientName, b.productName, b.openingDate, b.status
from Bid b
inner join Client c on b.clientID = c.clientID
inner join User u on b.userID = u.userID
where b.clientID = '" + cId + "' ";

有 2 张桌子:

"select b.bidID, b.userID, c.clientName, b.productName, b.openingDate, b.status
from Bid b
inner join Client c on b.clientID = c.clientID
where b.clientID = '" + cId + "' ";

【问题讨论】:

  • 您遇到什么错误?你是如何执行查询的——EF?休眠?其他一些ORM?你用的是什么数据库?
  • 你的SQL语句易受SQL Injection的影响
  • 您收到的错误是什么?

标签: c# sql join visual-studio-2013


【解决方案1】:

user 是 MSSQL 中的保留关键字。 将它与像这样的方括号一起使用[user]

select b.bidID ,b.userID , u.userFirstName, u.userLastName ,c.clientName , b.productName , b.openingDate,b.status 
from Bid b 
inner join Client c on b.clientID=c.clientID 
inner join [User] u on b.userID=u.userID 
where b.clientID='" + cId + "' "

【讨论】:

    【解决方案2】:

    很难说,因为你没有包含你得到的错误,但我猜你得到了一个错误,因为 User 是 SQL Server 中的一个关键字。尝试将 User 更改为 [User] 并查看您的错误是否消失。

    【讨论】:

      【解决方案3】:

      试试下面的 SQL 查询

      select b.bidID ,b.userID , u.userFirstName, u.userLastName, c.clientName , b.productName , b.openingDate,b.status 
      from ([Bid] b inner join [Client] c on b.clientID=c.clientID ) 
      inner join [User] u on (b.userID=u.userID) where b.clientID='" + cId + "' ;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-06
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 2016-07-14
        • 1970-01-01
        • 2016-07-29
        • 2014-01-18
        相关资源
        最近更新 更多