需要加入4个表

时间:2012-08-31 16:09:48

标签: sql oracle

我需要在查询中加入4个表。我希望表1中的所有结果,然后任何想要加入表1,2,3的任何结果。我不确定如何编写此查询。

这是我最好的猜测:

SELECT
 *
FROM
 t1
INNER JOIN
(
 t2 on t2.id = t1.id
 FULL OUTER JOIN t3 on t3.id = t1.id
 FULL OUTER JOIN t4 on t4.id = t1.id
)

我确实找到this post来解释不同类型的连接。从这一点来看,我相信我要为table1提供左连接或右连接,但后来我对嵌套语句感到困惑。

1 个答案:

答案 0 :(得分:2)

您问题的关键是您需要表1中的所有结果。这意味着左外连接:

    select *
    from t1 left outer join
         t2
         on t1.id = t2.id left outer join
         t3
         on t1.id = t3.id left outer join
         t4
         on t1.id = t4.id

左外连接保留“first”或“before”表中的所有记录,但不保留第二个表中的记录。因为你从t1开始,所有这些记录只保留与t2的匹配,依此类推。