-1

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

我确实找到了解释不同类型连接的这篇文章。由此,我相信我想要 table1 的左连接或右连接,但是我对嵌套语句感到困惑。

4

1 回答 1

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 匹配的记录,依此类推。

于 2012-08-31T16:19:06.070 回答