问题描述
在这里,将“关系”表视为“用户”和“电话”表之间的中间人。它与映射表是多对多关系。将您的用户加入到关系中,然后将其加入到您的电话中。
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