我有 10 个以上的表要连接在一起。这是我需要对 3 个表执行的操作的基本示例。
输入表
Table 1
ID, Time, Field1
1, Mon, 5
1, Tue, 6
1, Wed, 7
Table 2
ID, Time, Field1
1, Tue, 99
1, Wed, 199
1, Thu, 299
Table 3
ID, Time, Field1
1, Wed, 777
1, Thu, 888
1, Fri, 999
期望的输出表
Table Output
ID, Time, T1.Field1, T2.Field1, T3.Field1
1, Mon, 5, NULL, NULL
1, Tue, 6, 99, NULL
1, Wed, 7, 199, 777
1, Thu, NULL, 299, 888
1, Fri, NULL, NULL, 999
我已经尝试了以下(有 9 个表),但没有返回。这是运行时的原因还是我做错了类型的连接?
Select
id, time, t1.field1, t2.field1, t3.field3
From
table1 t1
FULL JOIN table2 t2 using (id, time)
FULL JOIN table3 t3 using (id, time);
最佳答案
您需要左外连接。这将获取 t1 中的所有行,以及 t2、t3 等中的任何匹配数据,但如果没有匹配数据,则返回 NULLS。
关于sql - 将多个表合并在一起,正确的连接类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20955724/