sql-server - MS Access 中的左连接不明确

标签 sql-server t-sql ms-access jet

我想从 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 中如何做到这一点?预先感谢您的时间和专业知识。

最佳答案

您需要一个派生表才能在 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 

关于sql-server - MS Access 中的左连接不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11734577/

相关文章:

sql-server - SQL Server 截断 View 中新创建字段的小数点

php - 为 php 安装 sql server 驱动程序

sql-server - SQL 查询 - 与其他表连接的更新语句

SQL 根据条件求和不同列的值

java - java连接Ms access数据库的方法

vba - 使用 Option Explicit 的 MS Access VBA 给出 "Variable not defined"错误,但适用于不同的数据库

ms-access - DoCmd.TransferSpreadsheet 问题

sql-server - SQL服务器事务

sql-server - SQL 服务器 : How do I use modify() to alter XML data in a column with a TEXT data type

sql - 将 IP 地址范围导入数据库表 - 如何检查 T-SQL 中的范围冲突?