当前位置: 首页 > 面试题库 >

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

和嘉澍
2023-03-14
问题内容

我有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


问题答案:

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

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匹配。



 类似资料:
  • 我正在使用hibernate 4和Spring 3。 我有5个表,每个表映射一个实体类。现在,如果我必须从1个表中选择列,我将执行以下操作: 此结果中的此值将为EmployeeEntity类型。 或者我也可以使用标准。 现在我的要求是我必须从所有5个表中得到结果。每个表中有1-2列。 早些时候,它是一个1表,所以我得到了一个实体,现在我得到了5个表的结果,所以如何在实体中映射它。 List res

  • 问题内容: 我在单个SQL语句中从多个表中提取Sums时遇到问题。 我有三个表tblCases,tblTimesheetEntries和tblInvoices在tblCases和其他两个表之间存在一对多的关系。 我目前正在使用以下SQL语句 但是,这似乎重复了发票金额。例如,如果一个案例只有一张发票,但是说有4个时间表条目,则它将计算出发票金额的4倍作为该表的总和。 如果我将分组取出,然后运行以下

  • 表 1:发票(inv_id、inv_value、cust_id) 表 2:客户(cust_id、sales_rep) 表 3:成员(Member_id、member_cateogry、member_type、cust_id) 注1:每个客户支付多张发票。(一对多关系)。< br >注2:每个客户为一个或多个会员付费(因此一个客户可能与多个会员相关)。< br >注3:每个成员都有一个类别,可以是1

  • 我正在构建一个小应用程序,以便在Laravel7中试验多对多关系。此应用程序涉及项目和用户(多对多)。 经过身份验证的用户可以创建新项目。每个项目都有自己的页面。在项目页面上,将呈现一个列表,其中包含作为该项目成员的每个用户的名称,在每个名称旁边是一个按钮,该按钮将从该项目中删除特定用户/成员。 现在,我被困在“删除用户”功能上。我不明白如何获取列表中每个用户的id,并将其传递给将“分离”多对多关

  • 我的Go应用程序上有这两个结构 我在前端使用Angular,所以如果我不需要提出两个请求来获得客户然后是地址,这将是非常实用的。 我在这里搜索了,但没有找到一对一关系的示例,有没有办法让这个查询不仅获得客户数据,而且还获得地址?