微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据关系表从多个表中获取结果

如何解决根据关系表从多个表中获取结果

在这里,将“关系”表视为“用户”和“电话”表之间的中间人。它与映射表是多对多关系。将您的用户加入到关系中,然后将其加入到您的电话中。

SELECT u.Id
    ,u.Name
    ,p.PhoneNumber
FROM dbo.Users u
LEFT JOIN dbo.Relationship r ON r.Id = u.Id
LEFT JOIN dbo.Phones p ON p.Id = r.ChildId

可以这样想:

您好关系,我的UserId = 1,我对那个UserId有什么电话ID?

嗨,用户。我的PhoneId = 10。我将与电话交谈,看看电话号码是多少。

嗨,人际关系!我有适合您的PhoneNumber 1234。它与您给我的PhoneId匹配。

解决方法

我有dbo.Users表

Id,Name
1,John
2,Mary
3,Michael

然后我有dbo.Phones表

Id,Phonenumber
10,1234
11,5555

然后我有dbo.Relationship表

Id,ChildId
1,10
2,11

我如何进行查询返回

Id,Name,Phonenumber
1,John,1234
2,Mary,5555
3,Michael,NULL

这就是我到目前为止所得到的。

SELECT u.Id,u.Name,p.Phonenumber
FROM dbo.Users as u
LEFT JOIN dbo.Phones as p
-- Something

SQL Fiddle

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。