这与我之前的问题有关MS Access 中存在超过 1 个左连接 https://stackoverflow.com/questions/1057167/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 中实现任意复杂的左连接。
您的双连接子句可能不起作用,因为它的成员之一引用了比该查询级别可见的结果集更深的结果集。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)