SQL从3个表中选择会返回语法错误

时间:2011-03-05 15:32:51

标签: sql linq ms-access select join

我有3个表,我需要使用ms-access DB

选择数据

我试过这个SQL:

SELECT a.column1, a.column2, a.column3, a.columnID, b.column1
From TableA a INNER JOIN TableB b
   ON a.columnID = b.columnID INNER JOIN TableC c
   ON c.columnID = a.columnRelativeID
WHERE a.columnID=16

虽然当我尝试执行查询时,我收到语法错误。

此外,当我删除第二个连接时,使用第三个表,查询工作正常,因此这是错误所在的位置。

example of joining 3 tables并没有帮助我理解我的问题所在。

如果我只从两个表中选择并从C#中的LINQ中完成第三表数据,这样可以吗?我在代码中的数据源中有第三表数据

提前致谢,

盎司。

2 个答案:

答案 0 :(得分:4)

您绝对可以从MS Access中的三个(或更多)表中进行选择。但是,您必须使用Access的craptastic括号系统,它在From子句中将表配对在一起。

Select A.Column1, A.Column2, A.Column3, A.ColumnID, B.Column1
From (Table1 AS A 
    Inner Join Table2 AS B 
        On A.ColumnID = B.ColumnId) 
    Inner Join Table3 AS C 
        ON A.ColumnRelativeId = C.ColumnId
Where A.ColumnId = 16

答案 1 :(得分:1)

SELECT a.column1, a.column2, a.column3, a.columnID, b.column1 
From TableA a , TableB b, TableC
WHERE a.columnID = b.columnID 
AND c.columnID = a.columnRelativeID 
AND a.columnID=16