我需要在查询中加入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提供左连接或右连接,但后来我对嵌套语句感到困惑。
答案 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的匹配,依此类推。