sql - MS Access 中的左连接

标签 sql ms-access join left-join

我正在尝试对其他人的 MS Access 查询进行故障排除,并不断收到无效操作错误。帮助似乎并不适用,因为我只是在运行查询。这一切都适用于 INNER JOINS但是当我切换回 LEFT JOIN 时错误。

SELECT *
 FROM ((((orders 
 INNER JOIN orders_customers ON orders.CUST_ORDER_ID = orders_customers.ID) 
 LEFT JOIN quoted_theory ON orders.PART_ID = quoted_theory.PART_ID) 
 LEFT JOIN conversions ON orders.PART_ID = conversions.PART_ID) 
 LEFT JOIN dbo_WO_Header ON orders.CUST_ORDER_ID = dbo_WO_Header.PPC_Number) 
 INNER JOIN lines_qry ON orders.CUST_ORDER_ID = lines_qry.WORKORDER_BASE_ID

我可以得到一级 LEFT JOIN ,但每次我添加第二个 LEFT JOIN错误弹出。

最佳答案

Access 的数据库引擎在混合 INNER 和 LEFT 连接时经常会出现问题。如果该查询在没有最后一个内部联接的情况下工作......

SELECT *
FROM
    (((orders INNER JOIN orders_customers
    ON orders.CUST_ORDER_ID = orders_customers.ID)
    LEFT JOIN quoted_theory
    ON orders.PART_ID = quoted_theory.PART_ID)
    LEFT JOIN conversions
    ON orders.PART_ID = conversions.PART_ID)
    LEFT JOIN dbo_WO_Header
    ON orders.CUST_ORDER_ID = dbo_WO_Header.PPC_Number

...然后你可以尝试将该部分作为子查询和内部连接 ​​lines_qry到子查询。它可能会克服错误。
SELECT *
FROM
    (
        SELECT *
        FROM
            (((orders INNER JOIN orders_customers
            ON orders.CUST_ORDER_ID = orders_customers.ID)
            LEFT JOIN quoted_theory
            ON orders.PART_ID = quoted_theory.PART_ID)
            LEFT JOIN conversions
            ON orders.PART_ID = conversions.PART_ID)
            LEFT JOIN dbo_WO_Header
            ON orders.CUST_ORDER_ID = dbo_WO_Header.PPC_Number
    ) AS sub
    INNER JOIN lines_qry
    ON sub.CUST_ORDER_ID = lines_qry.WORKORDER_BASE_ID

如果除 orders 之外的任何其他表包括一个名为 CUST_ORDER_ID 的字段,您将需要除 SELECT * 以外的其他东西在子查询中以避免歧义。

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

相关文章:

Mysql JOIN 获取指定列数据语法错误

mysql行编号重置每个不同的记录值

SQL Server 将 Varchar 转换为日期时间

mysql - MS Access 组合框未获取行源值

excel - 通过 VBA 将数据从 Access 导入 Excel。导入值的方式出现问题

mysql - 比较不同列时获得最低值

sql - 如何在 sql server 2014 中将经度和纬度存储为地理?

sql - HAVING子句中的CASE语句

sql-server - 存储与数据库无关的模式

MySQL 内连接与Where 子句问题