gpt4 book ai didi

sql - MS Access 中多于 1 个左联接的问题

转载 作者:行者123 更新时间:2023-12-01 13:08:28 24 4
gpt4 key购买 nike

这与我之前的问题有关 More than 1 Left joins in MSAccess

问题是我有 3 个左连接,后跟一个 AND 运算符来检查 1 个条件。

如果我运行,则会收到错误“不支持连接表达式”

查询是这样的:

SELECT * FROM(( EMPLOYEE AS E  LEFT JOIN DEPARTMENT AS D ON E.EID=D.EID)
LEFT JOIN MANAGERS M ON D.DID=M.DID)
LEFT JOIN MANAGERDETAILS MD ON M.MDID=MD.MDID
**AND E.ENO=MD.ENO**

如果我去掉 AND 部分,它工作正常。

有什么想法吗?

最佳答案

我会这样写:

SELECT EDM.*, MANAGERDETAILS.*
FROM (
SELECT ED.*, MANAGERS.*
FROM (
SELECT EMPLOYEE.*, DEPARTMENT.*
FROM EMPLOYEE
LEFT JOIN DEPARTMENT
ON EMPLOYEE.EID = DEPARTMENT.EID
) AS ED
LEFT JOIN MANAGERS
ON ED.DID = MANAGERS.DID
) AS EDM
LEFT JOIN MANAGERDETAILS
ON EDM.MDID = MANAGERDETAILS.MDID
AND EDM.ENO = MANAGERDETAILS.ENO

基本上,您一次连接一个表并为结果添加别名,然后您可以将其用于下一次连接。

您可以在 Access 中实现任意复杂的左联接,只需为较小的子集设置别名即可。您的双连接子句可能不起作用,因为其中一个成员引用的结果集比在该查询级别可见的结果集更深。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com