嵌套的外连接

时间:2013-11-15 04:23:52

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

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

+----------+---------------+
| paint_id | painting_name |
+----------+---------------+
|        1 | pueblo sunset |
|        2 | some other    |
+----------+---------------+

然后是另一张表

+---------+----------+
| made_id | paint_id |
+---------+----------+
|      10 |        1 |
+---------+----------+

另一张表

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

还有另一张桌子

+---------+---------+-------+
| term_id | lexi_id | term  |
+---------+---------+-------+
|      30 |      20 | Moran |
+---------+---------+-------+

我正在尝试编写MS SQL查询以返回类似这样的内容:

+---------------+-------+
| painting_name | term  |
+---------------+-------+
| pueblo sunset | Moran |
| some other    | NULL  |
+---------------+-------+

您可以看到数据已链接,但必须通过多个联结才能到达目的地。我知道我需要一些左外连接的东西继续下去,但我无法嵌套它们。

感谢您的帮助,如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

这是非常基本的,不需要基于示例数据的外连接。只需加入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
编辑:显然是太晚了。切换到外连接。