在 C# 中使用 SQL INNER JOIN 和 OleDbDataReader



我正在使用OleDbDataReader访问具有3个表的访问数据库。该数据库包含带有列 ID 的主">成员资格"表,以及">付款"和"船">表,这两个表都使用该 ID 作为外键,分别称为 PID 和 BID。

以下 SQL 查询将正常运行,并从"成员资格"和"付款"表中返回正确的值。

SELECT * 
FROM Membership 
INNER JOIN Payment ON Membership.ID = Payment.PID;

而以下 SQL 查询在尝试访问所有 3 个表时生成错误:

SELECT * 
FROM Membership 
INNER JOIN Payment ON Membership.ID = Payment.PID 
INNER JOIN Boat ON Membership.ID = Boat.BID;

错误其他信息:查询表达式"Membership.ID = 付款.PID 内部连接船 ON Membership.ID = Boat.BI"中的语法错误(缺少运算符)。

由于该错误,我开始怀疑 OleDbDataReader 是否能够在要求缺少运算符时执行两个内部连接,但是我已经尝试了所有常用的运算符,似乎无法让查询正确运行。 任何帮助将不胜感激:)

MS Access 需要为多个联接添加额外的括号:

SELECT *
FROM (Membership INNER JOIN
Payment
ON Membership.ID = Payment.PID
) INNER JOIN
Boat
ON Membership.ID = Boat.BID;

还应显式列出要避免重复列名的列。

相关内容

  • 没有找到相关文章

最新更新