带有左外连接和3个表的SQL

时间:2011-12-19 19:41:26

标签: sql ms-access

我想在代码末尾添加一个ADD。请查看我的代码并感谢您的支持:

SELECT Area.org, 
   Supervisors.NomSup, 
   Supervisors.PrenomSup, 
   Employees.NomEmp, 
   Employees.PrenomEmp, 
   Employees.NoIdAlcanEmp, 
   Competencies.CodeCompetencies, 
   Competencies.CompetencyName, 
   LinkResultComp.AssNote, 
   LinkResultComp.AssDate
FROM ((((((
       Area INNER JOIN Supervisors ON Area.IdArea = Supervisors.IdArea
      )
      INNER JOIN Employees ON Supervisors.IdSupervisor = Employees.IdSupervisor
     )
     INNER JOIN LinkProfilesEmployees ON Employees.IdEmp = LinkProfilesEmployees.IdEmp
    )
    INNER JOIN Profiles ON Profiles.IdProfiles = LinkProfilesEmployees.IdProfiles
   )
   INNER JOIN LinkProfComp ON Profiles.IdProfiles = LinkProfComp.IdProfiles
  )
  INNER JOIN Competencies ON Competencies.IdCompetencies = LinkProfComp.IdCompetencies
 )
 LEFT OUTER JOIN LinkResultComp ON (Competencies.IdCompetencies = LinkResultComp.IdCompetencies AND ON Competencies.IdCompetencies = LinkResultComp.IdCompetencies)

WHERE Area.org LIKE "*20*" AND Competencies.CodeCompetencies LIKE "khse2010-05"
ORDER BY Supervisors.NomSup, Employees.NomEmp;

1 个答案:

答案 0 :(得分:2)

只需删除您添加的额外ON

即可

所以改变这个

LEFT OUTER JOIN LinkResultComp 
ON (Competencies.IdCompetencies = LinkResultComp.IdCompetencies 
  AND ON Competencies.IdCompetencies = LinkResultComp.IdCompetencies)
------^^ This one

到这个

LEFT OUTER JOIN LinkResultComp 
ON (Competencies.IdCompetencies = LinkResultComp.IdCompetencies 
  AND Competencies.IdCompetencies = LinkResultComp.IdCompetencies)

当然,我认为你的第二个条件意味着不同的领域