Sql server 根据关系表从不同的表中获取结果
继续我以前的职务: 请参阅fiddle,了解我试图实现的目标: 我有两个附加表(组织和组),它们与用户表有关系。唯一的区别是关系在关系表中以另一种方式定义 我想要的是为每个用户提供一行,并从其他表中获取附加列 我现在得到的是:Sql server 根据关系表从不同的表中获取结果,sql-server,relationship,Sql Server,Relationship,继续我以前的职务: 请参阅fiddle,了解我试图实现的目标: 我有两个附加表(组织和组),它们与用户表有关系。唯一的区别是关系在关系表中以另一种方式定义 我想要的是为每个用户提供一行,并从其他表中获取附加列 我现在得到的是: Id Name PhoneNumber Organization GroupName 1 John 1234 Organization1 (null) 1 John 1234 (null) Group1 2 Ma
Id Name PhoneNumber Organization GroupName
1 John 1234 Organization1 (null)
1 John 1234 (null) Group1
2 Mary 5555 Organization2 (null)
3 Michael (null) Organization2 (null)
3 Michael (null) (null) Group2
我想要的是:
Id Name PhoneNumber Organization GroupName
1 John 1234 Organization1 Group1
2 Mary 5555 Organization2 (null)
3 Michael (null) Organization2 Group2
你能帮我理解这里发生了什么,我该如何解决这个问题吗?我看到了你的例子,也许你需要一个
小组
SELECT u.Id
,u.Name
,max(p.PhoneNumber) AS PhoneNumber
,Max(c.Name) as Organization
,Max(g.Name) as GroupName
FROM Users u
LEFT JOIN Relationship r ON r.Id = u.Id
LEFT JOIN Phone p ON p.Id = r.ChildId
LEFT JOIN Relationship rr ON rr.ChildId = u.Id
LEFT JOIN Organizations c ON c.Id = rr.Id
LEFT JOIN Groups g ON g.Id = rr.Id
GROUP BY u.Id
,u.Name