sql - 在sql中堆叠来自不同表的多列

标签 sql postgresql

我正在尝试将我在 sql 中匹配的列对堆叠在一起。例如,我将 A 列中的条目匹配到不同表中的 B 列,然后我想将 C 列和 D 列添加到 A 列和 B 列。它应该如下所示:

A1 B1
A2 B2
C1 D1
C2 D2

有没有简单的方法来做到这一点?我可以将列 ABCD 放入表中,但我对 sql 语法了解不够,无法将一个列插入另一个列。 Insert into statements 看起来很有希望,这是我试过的一些代码,但根本不起作用:

    SELECT
    col_A,
    col_B
    FROM
    table_A as a
    LEFT JOIN
    table_B as b on b.ID = a.ID;
    --this is where I think I'm messing up:
    INSERT INTO a
    col_C,
    col_D
    FROM
    table_c as c
    LEFT JOIN
    table_d as d on d.ID = c.ID

有什么想法吗?更简单的方法来做到这一点?谢谢! (如果有任何改变,我需要使用 PostgreSQL)

最佳答案

假设您要追加的数据属于同一类型,您可以使用 union all(如果要删除重复项则使用 union):

WITH table1 AS (
    SELECT
      col_A,
      col_B
   FROM table_A as a
   LEFT JOIN table_B as b 
     on b.ID = a.ID
   ),

    table2 AS (
    SELECT
      col_C,
      col_D
   FROM table_C as c
   LEFT JOIN table_D as d
      on c.ID = d.ID
    )

   SELECT *
   FROM table1
   union all
   SELECT * 
   FROM table2
  ;

关于sql - 在sql中堆叠来自不同表的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37970293/

相关文章:

MySql Duplicate rows 字符串比较性能

sql - 为范围内的缺失值补零

python - 无法使用 psycopg2 连接到远程 postgreSQL

sql - 困难的 SQL 子查询来计算一些东西

python - 在postgres中逐行读取和存储csv数据

google-app-engine - 如何将 PostgreSQl 数据库移植到 Google App 引擎

sql - 在列上使用 distinct 并在另一列上执行 order by 会出错

sql - 带有 INSERT 存储过程的 C#\r\n 问题

sql - 如何聚合sql(HANA)中不同行的值?

postgresql - 如何使用 PostgreSQL 代码片段?