SQL JOIN多部分标识符错误

时间:2016-06-27 03:05:07

标签: sql sql-server tsql join

我有两个表,Customers [CustomerID, Email]和历史[CustomerID,BikeID,Checkout,StationIDout,Checkin,StationIDin]。

在给定客户的电子邮件的情况下,我想查询History表,并获取包含该电子邮件的所有行({1}},其中返回了自行车(CustomerID {1}}),按最近的WHERE Checkin IS NOT NULL日期排序。

我尝试了以下查询,但收到错误:

  

"多部分标识符" test_email@test.org"无法受约束。"

test_email@test.org存在于数据库中。我看到其他帖子解释了它是如何错误地选择了拼写错误或某些列,但我没有看到我的查询中的任何一个。还有别的东西我不见了吗?

Checkin

1 个答案:

答案 0 :(得分:4)

缺少字符串引号:

 sql = string.Format(@"
    SELECT BikeID, Checkout, StationIDout, Checkin, StationIDin 
    FROM History INNER JOIN 
    Customers ON Customers.CustomerID = History.CustomerID
    AND Customers.Email = '{0}' 
                          ^   ^
    WHERE Checkin IS NOT NULL
    ORDER BY Checkin DESC", email);

但不是使用concat或format,而是使用参数