2013-07-12 66 views
1

我试图做一个INNER JOIN和LEFT在MS访问相同的查询JOIN,这里是我的查询如何在同一个查询中使用INNER和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表达不支持。有人可以帮我弄这个吗。

我不想创建一个内部查询,然后创建与seperately

+8

你在内部连接中有不匹配的')'。 – gdoron

+0

更正.. thnx – SSK

+0

@gdoron对不起,我不明白你是什么意思 – SSK

回答

1

较早的回答另一个留网址查询,因为删除,建议您从查询中删除所有的括号。但是,Access包含多个连接时,需要在FROM子句中使用括号。

由于问题与连接有关,因此只能从一个只关注它们的简单查询开始。看看这个查询是否没有错误地运行。

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条款。

相关问题