MS-Access SQL:不支持连接表达式

时间:2016-11-28 15:15:19

标签: sql ms-access left-join inner-join

我有2个表A和B.我想创建第三个表C.C必须包含A中但不在B中的每个记录,以及A和B中的每个记录。

我尝试了以下内容:

SELECT A.* INTO C FROM (A INNER JOIN B ON A.Id = B.Id) LEFT JOIN B ON A.Id = B.Id WHERE B.Id IS NULL;

但是它给了我错误消息:JOIN expression not supported.

当只有INNER JOINLEFT JOIN时,它才能完美运行。但由于某些原因,当我将两者与括号结合使用时,它不起作用。

我相信我正在使用MS-Access 2013,如果这有帮助的话。 顺便说一句,我是一个Access和一个SQL新手。

1 个答案:

答案 0 :(得分:0)

正确的逻辑是:

SELECT A.* INTO C
FROM A LEFT JOIN
     B
     ON A.Id = B.Id
WHERE B.Id IS NULL;

您不需要两个连接。我猜你的查询问题是B子句中FROM出现两次,没有表别名。 MS Access不知道第二个B引用的内容。