在 C# 中将 SQL INNER JOIN 与 OleDbDataReader 结合使用

Using an SQL INNER JOIN with OleDbDataReader in C#

我正在使用 OleDbDataReader 访问具有 3 tables 的 Access 数据库。数据库包含主要的 "Membership" table 和一个 "Payment""Boat" table 都使用作为外键的ID分别称为PID和BID。

以下 SQL 查询 运行 正确并且 returns 从成员资格和付款 table 中查询正确的值。

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

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

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

错误: 附加信息:查询表达式中的语法错误(缺少运算符)'Membership.ID = Payment.PID INNER JOIN Boat ON Membership.ID = Boat.BI'。

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

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

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

您还应该明确列出要避免列名重复的列。