2015-06-02 199 views
0

我是一位具有SQL经验的分析师,但我还没有加入超过2个表。我试图加入这3个表格,但我无法将表格与成功结合在一起。我究竟做错了什么?SQL三连接:无法三连接

Use Db3 
Select Persons.DateOfBirth 
, Persons.DisabilityCode 
, Persons.Ethnicity 
, Persons.Gender 
, Persons.Country 
, Persons.MaritalStatus 
, Persons.Suffix 
, Persons.LastName 
, Persons.FirstName 
, Persons.MiddleName 
, Persons.CommonOrPreferredName 
, Persons.Credentials 
, Persons.IsActive 
, Persons.MilitaryStatus 
, Jobs.Id 
, Jobs.AdjustedDateOfHire 
, Jobs.DateOfHire 
, Jobs.CompanyOwnershipStatus 
, Jobs.LeaveDate 
, Jobs.TerminationDate 
, OrganizationalAssociations.Id 
, OrganizationalAssociations.EmployeeNumber 
, OrganizationalAssociations.SourceSystemEmployeeId 
, OrganizationalAssociations.EmploymentType 
From Persons Person 

JOIN Persons ON Persons.Id = Jobs.Id 
JOIN Jobs ON Jobs.Id = Persons.Id 
JOIN OrganizationalAssociations ON OrganizationalAssociations.Id = Persons.Id 

错误消息:Jobs.Id无法绑定

+0

你可以发表三张表的表结构吗?数据库Db3中的Jobs表上是否有Id列? – TTeeple

+0

您正在使用Persons表两次加入四张表 – Sherlock

+0

您真的需要在此查询中的第一个JOIN(Persons to self)吗? – C8H10N4O2

回答

0

你并不需要PersonJOIN Persons ON Persons.Id = Jobs.Id加入。您的查询应该如下面消除了与Person表

Use Db3 
Select Persons.DateOfBirth 
, p.DisabilityCode 
, p.Ethnicity 
, p.Gender 
, p.Country 
, p.MaritalStatus 
, p.Suffix 
, p.LastName 
, p.FirstName 
, p.MiddleName 
, p.CommonOrPreferredName 
, p.Credentials 
, p.IsActive 
, p.MilitaryStatus 
, j.Id 
, j.AdjustedDateOfHire 
, j.DateOfHire 
, j.CompanyOwnershipStatus 
, j.LeaveDate 
, j.TerminationDate 
, o.Id 
, o.EmployeeNumber 
, o.SourceSystemEmployeeId 
, o.EmploymentType 
From Persons p 
JOIN Jobs j ON j.Id = p.Id 
JOIN OrganizationalAssociations o ON o.Id = p.Id 
0

的加入,我不认为你真的需要先加入以后。 删除线JOIN ON Persons.Id = Jobs.Id人员和尝试。你应该很好。