sql - 将多个表合并在一起,正确的连接类型?

标签 sql postgresql

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

相关文章:

sql - 在 SQL Server 中添加时间戳到日期

sql - 将 F# 连接到 SQL 时出错

java - JdbcTemplate 的 SQL DELETE FROM 不起作用

ruby-on-rails - Ruby Rails - 从 Postgres 复制到 CSV

sql - PostgreSQL 触发器根据条件添加/删除数据

sql - 在 SQL 中删除字符串的前缀

SQL:递归选择所有子记录的SUM

mysql - ansible 和 postgresql - 有没有办法使用 ansible 针对 postgresql 数据库运行 .sql 文件?

ruby-on-rails - Group_by - Ruby/Rails + Postgres

c# - 使用 Npgsql postgres 和 C# 更新命令