我想从T-SQL转换以下查询
SELECT
*
FROM
A LEFT JOIN
B ON A.field1 = B.field1 LEFT JOIN
C ON C.field1 = A.field2 AND
C.field2 = B.field2
到Jet SQL。
现在MS Access不接受含糊不清的查询。我怎样才能做到这一点?我不能在WHERE
子句中进行第二次比较。为什么?因为我的情况是我选择了C中不存在的记录。
How to select all records from one table that do not exist in another table?
现在,你在MS Access中怎么做?提前感谢您的时间和专业知识。
答案 0 :(得分:3)
您需要一个派生表才能在MS Access中使用它:
SELECT *
FROM (
SELECT A.Field1, A.Field2 As A2, B.Field2
FROM A
LEFT JOIN B ON A.field1 = B.field1) AS x
LEFT JOIN C ON x.A2 = C.field1 AND x.field2= C.field2
答案 1 :(得分:0)
来自帮助LEFT JOIN, RIGHT JOIN Operations
您可以链接多个ON子句。请参阅子句链接的讨论 在INNER JOIN主题中查看如何完成此操作。
您还可以使用。链接JOIN语句中的多个ON子句 语法如下:
SELECT fields
FROM table1
INNER JOIN table2 ON table1.field1 compopr table2.field1
AND ON table1.field2 compopr table2.field2)
OR ON table1.field3 compopr table2.field3)];
但是这样做(似乎帮助中有错误):
SELECT *
FROM A
LEFT JOIN B ON A.field1 = B.field1
LEFT JOIN C ON (C.field1 = A.field2 AND C.field2 = B.field2)