如何解决根据关系表从多个表中获取结果
在这里,将“关系”表视为“用户”和“电话”表之间的中间人。它与映射表是多对多关系。将您的用户加入到关系中,然后将其加入到您的电话中。
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。