【问题标题】:Concatenating two tables with same column number and name连接具有相同列号和名称的两个表
【发布时间】:2014-06-24 07:31:24
【问题描述】:

我有两张桌子:

TABLE_A

head1 head2
foo   case1
bar   case2

和 TABLE_B

head1 head2
hux   case1
pix   case2
ilf   case1

我想做的是创建这个表:

head1 head2
foo case1
bar case2
hux case1
pix case2
ilf case3

即只是将它们组合起来,不删除任何冗余。

执行此操作的正确命令是什么? 我试过了,但没有得到想要的结果。

CREATE TABLE TABLE_AB(head1 text, head2 text)
(SELECT * FROM TABLE_A)
UNION ALL
(SELECT * FROM TABLE_B)

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您可以省略联合部分周围的括号。另外,对于create table ... select,您没有指定列定义。

    create table Table3
    select  *
    from    Table1
    union all
    select  *
    from    Table2
    

    Example at SQL Fiddle.

    【讨论】:

      【解决方案2】:

      您可以将列名称更改为所需的名称。

      CREATE TABLE TAB1 (ID number, NAME VARCHAR2(10));
      CREATE TABLE TAB2 (ID number, NAME VARCHAR2(10));
      
      INSERT INTO TAB1 VALUES (1, 'AAA');
      INSERT INTO TAB1 VALUES (2, 'BBB');
      INSERT INTO TAB1 VALUES (3, 'CCC');
      
      INSERT INTO TAB2 VALUES (1, 'EEE');
      INSERT INTO TAB2 VALUES (4, 'FFF');
      
      CREATE TABLE TAB AS ((SELECT * FROM TAB1) UNION ALL (SELECT * FROM TAB2));
      

      【讨论】:

        猜你喜欢
        • 2011-12-12
        • 2021-11-25
        • 1970-01-01
        • 2015-10-29
        • 1970-01-01
        • 2011-04-07
        • 2017-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多