如何在同一查询中使用INNER和LEFT JOIN?

时间:2013-07-12 14:44:27

标签: sql ms-access

我正在尝试在MS ACCESS中的同一查询中执行INNER JOIN和LEFT JOIN,这是我的查询

SELECT T2.Col1, T2.Col2, T2.Col3, TB.Col1
FROM (T2

INNER JOIN TB ON
TB.Col1 = T2.Col1 AND TB.Col2 = T2.Col2)

LEFT JOIN T1
ON (T1.Col1 = TB.Col1) AND (T1.Col2 = T2.Col2) 
WHERE T1.Col1 IS NULL OR T1.Col2 IS NULL

但在(T1.Col1 = TB.Col1)`它表示不支持JOIN表达式。有人可以帮我解决这个问题。

我不想创建内部查询,然后单独创建另一个左查询

1 个答案:

答案 0 :(得分:1)

之前的答案,自删除后,建议您从查询中删除所有括号。但是,当FROM子句包含多个连接时,Access需要使用括号。

由于问题在于连接,因此请从仅关注它们的简单查询开始。查看此查询是否正常运行。

SELECT *
FROM
    (T2
    INNER JOIN TB
    ON T2.Col1 = TB.Col1 AND T2.Col2 = TB.Col2)
    LEFT JOIN T1
    ON T2.Col1 = T1.Col1 AND T2.Col2 = T1.Col2

一旦联接正确,请将*替换为您的字段名称,然后添加WHERE子句。