使用多个左联接的MS Access SQL [英] MS Access SQL using multiple left joins

查看:83
本文介绍了使用多个左联接的MS Access SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面的联接在Access中有效,但是我需要添加第四个联接.

The below join works in Access, but I need to add a fourth join.

FROM ((Agents
LEFT JOIN Resignation_Pool    ON Agents.PF = Resignation_Pool.PF)
LEFT JOIN Teams               ON Agents.Team = Teams.ID)
LEFT JOIN Skills              ON Agents.PF = Skills.PF

当我添加第四个联接时,它不起作用.我知道Access在括号中很奇怪,但是我认为它们在它们的所属位置.该查询将永远无所事事地运行(根本不应该运行很长时间),最终我取消了它.有什么建议吗?

When I add the fourth join, it doesn't work. I know Access is weird about the parenthesis, but I think I have them where they belong. The query just runs forever doing nothing (it shouldn't run long at all) and I end up cancelling it. Any suggestions?

FROM (((Agents
LEFT JOIN Resignation_Pool    ON Agents.PF = Resignation_Pool.PF)
LEFT JOIN Teams               ON Agents.Team = Teams.ID)
LEFT JOIN Skills              ON Agents.PF = Skills.PF)
LEFT JOIN OneMore             ON Agents.OM = OneMore.OM

这是有效的代码-我的实际查询而不是我发现的类似查询.

Here is the code that works - my actual query instead of one I found that looked similar.

SELECT DISTINCT A02.PID, A02.PS, A02.PN, A02.PM, C01.RC, C01.IC, C01.RD 
INTO AutoCR 
FROM ((02_CorrectResults A02 
LEFT OUTER JOIN dbo_pol_PGI C01 
  ON (A02.PID = C01.PID and C01.PS = '999' and C01.PEDate >= #04/01/2012#)) 
LEFT OUTER JOIN dbo_pol_IL C02 
  ON C01.PID = C02.PID) 
LEFT OUTER JOIN dbo_pol_UN C03 
  ON C02.ILID = C03.ILID

我添加了另一个联接,但这不起作用.我尝试使用内部联接来代替,但是Access不喜欢那样.

I add another join and this doesn't work. I tried using inner join instead but Access doesn't like that.

SELECT DISTINCT A02.PID
, A02.PS
, A02.PN
, A02.PM
, C01.RC
, C01.IC
, C01.RD
, C04.CCode
, C04.PCode
, C04.CForm,
INTO AutoCR 
FROM (((02_CorrectResults A02 
LEFT OUTER JOIN dbo_rol_PGI C01 
  ON (A02.PID = C01.PID and C01.PS = '999' and C01.PEDate >= #04/01/2012#)) 
LEFT OUTER JOIN dbo_rol_IL C02 
  ON C01.PID = C02.PID) 
LEFT OUTER JOIN dbo_rol_UN C03 
  ON C02.ILID = C03.ILID) 
LEFT OUTER JOIN dbo_rol_HO C04 
  ON C03.UnID = C04.UnID

推荐答案

查询中有尾随的,.去掉它.

You have a trailing , in your query. Remove it.

SELECT DISTINCT A02.PID
, A02.PS
, A02.PN
, A02.PM
, C01.RC
, C01.IC
, C01.RD
, C04.CCode
, C04.PCode
, C04.CForm,   <--- this was the problem
INTO AutoCR 
FROM (((02_CorrectResults A02 
LEFT OUTER JOIN dbo_rol_PGI C01 
  ON (A02.PID = C01.PID and C01.PS = '999' and C01.PEDate >= #04/01/2012#)) 
LEFT OUTER JOIN dbo_rol_IL C02 
  ON C01.PID = C02.PID) 
LEFT OUTER JOIN dbo_rol_UN C03 
  ON C02.ILID = C03.ILID) 
LEFT OUTER JOIN dbo_rol_HO C04 
  ON C03.UnID = C04.UnID

这篇关于使用多个左联接的MS Access SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆