Jof*_*sey 10 sql ms-access join ms-access-2007 left-join
在postgresql中,我可以在连接条件中使用子查询
SELECT *
FROM table1 LEFT JOIN table2
ON table1.id1 = (SELECT id2 FROM table2 LIMIT 1);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在Access中使用它时
SELECT *
FROM table1 LEFT JOIN table2
ON table1.id1 = (SELECT TOP 1 id2 FROM table2);
Run Code Online (Sandbox Code Playgroud)
我得到语法错误.它实际上是不可能的Access或只是我的错误?
我知道我可以得到相同的结果WHERE
,但我的问题是关于JOIN
Access的可能性.
Lit*_*les 12
根据MSDN文档,这是不可能的:
句法
FROM table1 [LEFT | 右] JOIN table2 ON table1.field1 compopr table2.field2
并且(强调我的):
field1,field2: 已连接的字段的名称.这些字段必须具有相同的数据类型并包含相同类型的数据,但它们不需要具有相同的名称.
您似乎甚至无法在您的加入中使用硬编码值; 您必须指定要加入的列名称.
在你的情况下,你会想要:
SELECT *
FROM Table1
LEFT JOIN (
SELECT DISTINCT TOP 1 ID
FROM Table2
ORDER BY ID
) Table2Derived ON Table1.ID = Table2Derived.ID
Run Code Online (Sandbox Code Playgroud)