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