我有两个Access 2007数据库,DB1和DB2 for convention,我正在尝试将DB1中的查询结果(Q1)与DB2中的查询(Q2)外连接。
我的代码看起来像这样
SELECT
Q2.a,
Q2.b,
Q2.c,
Q1.d
FROM
[Full name of Q1] IN 'C:\Users\...\DB1.accdb' AS Q1
RIGHT JOIN
[Full name of Q2] AS Q2
ON Q2.a = Q1.a
;
但是返回错误“FROM子句中的语法错误”。
我已经尝试使用LEFT JOIN
这个方法,并尝试过多的方法围绕着无效的尝试来实现这一点。我做错了什么?
答案 0 :(得分:1)
我相信你可以改写你的查询:
SELECT
Q2.a,
Q2.b,
Q2.c,
Q1.d
FROM (SELECT * FROM [Full name of Q1]
IN 'C:\Users\...\DB1.accdb') Q1
RIGHT JOIN [Full name of Q2] AS Q2 ON Q1.ID = Q2.ID;
答案 1 :(得分:1)
[source Name] IN 'file path'
语法很棘手。如果您想要别名[source Name]
,则需要在[source Name]
和'file path'
件之间添加别名(而不是在'file path'
之后)。
但即使只适用于包含单个数据源的查询。加入任何内容后,[source Name] IN 'file path'
语法会中断...并且无法修复。你需要一种不同的方法......
SELECT
Q2.a,
Q2.b,
Q2.c,
Q1.d
FROM
[C:\Users\...\DB1.accdb].[Full name of Q1] AS Q1
RIGHT JOIN [Full name of Q2] AS Q2
ON Q2.a = Q1.a;