首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL多连接多对多

SQL多连接多对多
EN

Stack Overflow用户
提问于 2020-08-25 17:07:58
回答 1查看 71关注 0票数 0

我有5张表:

表报告

代码语言:javascript
复制
Report_Id | Report_name
-----------------
      1     | Income
      2     | Outcomes
      3     | Costs

多对多表ReportsIpRel

代码语言:javascript
复制
Ip_Id | Report_Id
-----------------
    6   |    1
    4   |    2
    5   |    2
    2   |    2
    1   |    3

InfoProviders表

代码语言:javascript
复制
Ip_Id | Ip_Name
-----------------
    6   |    Comission
    4   |    Comapny
    5   |    Others
    2   |    People
    1   |    Traveler

多对多表QueriesIpRel

代码语言:javascript
复制
Ip_Id | Query_Id
-----------------
    6   |    3
    4   |    3
    5   |    3
    2   |    5
    1   |    1

和查询表

代码语言:javascript
复制
Query_Id | Query_Name
-----------------
    1   |    connection
    2   |    distantcon
    3   |    shortconn
    4   |    linking
    5   |    grounding

我试图实现的选择如下所示:

代码语言:javascript
复制
Report_Id | Report_name | Ip_Id | Ip_Name | Query_Id | Query_Name
    2     | Outcomes    |  4    | Comapny |  3       | shortconn
    2     | Outcomes    |  5    | Others  |  3       | shortconn
    2     | Outcomes    |  2    | People  |  5       | grounding

我尝试了许多像这样的左/内连接:

代码语言:javascript
复制
left outer join ReportsIPRel rir on r.Report_Id = rir.Report_Id
left outer join InfoProvider ipr on rir.Ip_Id = ipr.Ip_Id
left outer join QueriesIPRel qir on ipr.Ip_Id = qir.Ip_Id 
left outer join Queries q on qir.Query_Id = q.Query_Id
where r.Report_Id= '2'

但这一切都是徒劳的。

我必须使用where条件: WHERE report_Id = '2‘/EXAMPLE

我正尝试在SQL Server Management Studio中的ms SQL中执行此操作。

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-25 17:55:21

请尝试此查询,它在SQL server中对我有效:

Demo

代码语言:javascript
复制
select r.*, ipr.ip_id, ipr.Ip_Name, q.uery_Id, q.Query_Name from
reports r
left outer join ReportsIPRel rir on r.Report_Id = rir.Report_Id
left outer join InfoProviders ipr on rir.Ip_Id = ipr.Ip_Id
left outer join QueriesIPRel qir on ipr.Ip_Id = qir.Ip_Id 
left outer join Queries q on qir.Query_Id = q.uery_Id
where r.Report_Id= '2'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63575576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档