【问题标题】:Nested Outer Joins嵌套外连接
【发布时间】:2013-11-28 09:36:25
【问题描述】:

我有一个有点复杂的数据库,我正试图从中获取一些信息。本质上存在三个链接表,例如:

+----------+--------------+
|油漆标识 |绘画名 |
+----------+----------------+
| 1 |普韦布洛日落 |
| 2 |其他一些|
+----------+----------------+

然后是另一张桌子

+---------+----------+
| made_id |油漆标识 |
+---------+----------+
| 10 | 1 |
+---------+---------+

还有一张桌子

+---------+---------+
| lexi_id | made_id |
+---------+---------+
| 20 | 10 |
+---------+---------+

还有一张桌子

+---------+---------+--------+
| term_id | lexi_id |学期 |
+---------+---------+--------+
| 30 | 20 |莫兰 |
+---------+---------+--------+

我正在尝试编写一个 MS SQL 查询以返回如下内容:

+---------------+--------+
|绘画名 |学期 |
+---------------+--------+
|普韦布洛日落 |莫兰 |
|其他一些|空 |
+---------------+--------+

您可以看到数据是链接的,但它必须经过几个路口才能到达那里。我知道我需要一些 Left Outer Join 内容才能继续,但我无法嵌套它们。

感谢您的帮助,如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: sql sql-server sql-server-2008 outer-join


    【解决方案1】:

    这是非常基本的,不需要根据您的示例数据进行外部连接。只需加入 ID 上的表: SQL Fiddle

      select
      t1.painting_name,
      t4.term
    
      from t1
      left outer join t2
      on t1.paint_id = t2.paint_id
      left outer join t3 
      on t2.made_id = t3.made_Id
      left outer join t4 on t3.lexi_Id = t4.lexi_id
    

    编辑:显然晚上太晚了。切换到外部联接。

    【讨论】:

    • 好吧,我想太多了。谢谢!
    猜你喜欢
    • 2013-04-17
    • 2016-11-25
    • 2021-07-10
    • 2014-11-11
    • 2015-11-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多