我正在使用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;
还应显式列出要避免重复列名的列。