sql - 不支持 LEFT JOIN 表达式
问题描述
我需要使用左外连接进行查询,如下所示,但是 Access 显示警告对话框“不支持 JOIN 表达式”。我知道 Access 不支持嵌套在 LEFT JOIN 内的 INNER JOIN 但因为我是初学者在 SQL 中,我看不到任何其他方法可以得到相同的结果。
查询的目标是获取选择中的所有内容,即使 InvoiceItems.Amount 为空。
SELECT MainOrder.OrderNumber, OrderComponent.ArticleNumber, SupplierOrderMain.*, InvoiceItems.Amount
FROM InvoiceItems LEFT JOIN
((MainOrder INNER JOIN
OrderComponent
ON MainOrder.OrderNumber = OrderComponent.OrderNumber
) INNER JOIN
SupplierOrderMain
ON OrderComponent.ID = SupplierOrderMain.OrderComponentID
)
ON InvoiceItems.OrderComponent = OrderComponent.ID;
解决方案
我不确定为什么在这种情况下你会想要外部连接(你没有解释为什么)。但只需从要保留所有内容并从那里开始工作的表开始:
SELECT MainOrder.OrderNumber, OrderComponent.ArticleNumber, SupplierOrderMain.*, InvoiceItems.Amount
FROM ((InvoiceItems LEFT JOIN
OrderComponent
ON InvoiceItems.OrderComponent = OrderComponent.ID
) LEFT JOIN
MainOrder
ON MainOrder.OrderNumber = OrderComponent.OrderNumber
) LEFT JOIN
SupplierOrderMain
ON OrderComponent.ID = SupplierOrderMain.OrderComponentID
推荐阅读
- python - 如何在 Python 中不输入换行符?
- python - python xlrd 包在读取超过 999999 行的工作表时给出 ValueError
- r - Web将表格刮入R
- react-native-navigation - 按下按钮时打开 SideMenu
- php - gRPC 和 XAMPP 不工作
- angularjs - Angularjs实现谷歌地图没有被渲染
- swt - 使用 ScrollGraphicalViewer 滚动时出现重绘问题
- mysql - Laravel morphedByMany where 条件和计数
- matlab - 如何将一列字符插入矩阵?
- azure - 查找哪个 Web 作业正在记录应用程序日志中的内容