将三张桌子相互连接起来

时间:2021-07-09 14:46:00

标签: sql sql-server tsql

这样可以连接三个表吗。

select T1.[...],T2.[...],T3.[...]
from T1 
full outer join T2 on T1.[key]=T2.[key]
full outer join T3 on T1.[key]=T3.[key]
full outer join T2 on T2.[key]=T3.[key]

我的问题是:这是一个有效的表格吗? 如果没有,有没有办法做这样的操作?

2 个答案:

答案 0 :(得分:1)

可以连接三个表,并且您的示例可以在进行一些更改后运行,但是 FROM 子句中存在语法和范围错误。

即使是那些,我也不认为它会做你想做的事。您可能想要使用 GROUP BY

在此处查看示例/讨论:

Multiple FULL OUTER JOIN on multiple tables

我也使用这个站点作为来源,因为我已经有一段时间没有接触 SQL,它可能对你也有帮助:

https://learnsql.com/blog/how-to-join-3-tables-or-more-in-sql/

答案 1 :(得分:0)

它是“有效的”,但 full join 不正确。 on 条件会将它们更改为某种其他类型的 join

您的查询有其他错误。但我推测你想要:

select T1.[...], T2.[...], T3.[...]
from T1 full join
     T2 
     on T2.[key] = T1.[key] full join
     T3 join
     on T3.[key] = coalesce(T2.[key], T1.[key]);
相关问题