从单独的数据库加入查询
Joining a query from a separate database
我有两个 Access 2007 数据库,DB1 和 DB2 用于约定,我正在尝试将 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
;
但是returns错误"Syntax error in FROM clause."
我已经用 LEFT JOIN
尝试过这种方法,并且尝试过在事物周围放置太多括号,但徒劳无功地尝试使它起作用。我做错了什么?
我相信您可以像这样重写您的查询:
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;
[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;
我有两个 Access 2007 数据库,DB1 和 DB2 用于约定,我正在尝试将 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
;
但是returns错误"Syntax error in FROM clause."
我已经用 LEFT JOIN
尝试过这种方法,并且尝试过在事物周围放置太多括号,但徒劳无功地尝试使它起作用。我做错了什么?
我相信您可以像这样重写您的查询:
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;
[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;