从单独的数据库加入查询

时间:2015-08-07 19:25:20

标签: sql ms-access ms-access-2007 outer-join

我有两个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这个方法,并尝试过多的方法围绕着无效的尝试来实现这一点。我做错了什么?

2 个答案:

答案 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;