我有一些 SQL 加入 Access 中的多个表。尝试运行它时,“JOIN”中出现错误(特别是“不支持 JOIN 表达式”)。我相信我已经将问题缩小到一个加入,但为什么它不起作用对我来说没有任何意义。因此,原始的完整 SQL FROM 子句是:
FROM (
(
Customers RIGHT JOIN
(
Sales LEFT JOIN SaleType ON Sales.SalesForID = SaleType.SalesForID
)
ON Customers.CustomerID = Sales.CustomerID
) LEFT JOIN
(
StudentContracts LEFT JOIN
(
StudentsClasses INNER JOIN Classes ON StudentsClasses.ClassID = Classes.ClassID
)
ON StudentContracts.CustomerID = StudentsClasses.CustomerID
)
ON Customers.CustomerID = StudentContracts.CustomerID
)
我认为查询失败的部分是在这个“LEFT”连接上:
(
StudentContracts LEFT JOIN
(
StudentsClasses INNER JOIN Classes ON StudentsClasses.ClassID = Classes.ClassID
)
ON StudentContracts.CustomerID = StudentsClasses.CustomerID
)
我尝试将“LEFT”切换为“INNER”并且它有效。我已将其切换为“RIGHT”并且可以正常工作。为什么它不适用于“LEFT”加入但适用于其他加入?我需要的是一个结果,显示连接到 StudentContracts 的连接“Classes”表中的记录,以及在 Classes 表中没有记录的 StudentContracts。根据这篇文章的答案:SQL Server 中左连接和右连接之间的区别我相当肯定我想要一个左连接,这应该可以工作。
我在这里想念什么?