从联合两个 table 中创建一个新的 table 并在 postgres 中联合

Create a new table from Union two tables with union in postgres

我想创建一个新的 table 作为两个没有重复的 table 的合并结果。我在 Whosebug 中搜索,我发现了一个问题,正是我想要的,但使用 mysql Create a new table from merging two tables with union.

mysql

中的解决方案
CREATE TABLE new_table
  SELECT * FROM table1
    UNION
  SELECT * FROM table2;

我尝试做类似的事情,但我得到了:

SQL error.

如果可能的话,我想用类似于 mysql 的语句来实现。

我知道,如果您首先使用我想要的字段创建一个新的 table。我可以在这个 table 的联合上对这个 table 做一个 select。如果没有其他选择,我必须做这样的事情。

但总而言之,如果可能的话,在 postgres 中做一些类似于 mysql 的问题。我想使用语法糖来做到这一点

提前致谢

更新

为了澄清我有两个 table 具有相同的结构

TABLE1(id,field1,field2,field3)
TABLE2(id,field1,field2,field3)

和我想要的table

TABLE3(id,field1,field2,field3)

注意我试过了

CREATE TABLE new_table as
  SELECT * FROM table1
    UNION
  SELECT * FROM table2;

它有效,但没有将字段放在正确的位置,例如将 table 1 的字段 3 放在 table_result

的字段 1 中

您缺少 AS 关键字:

CREATE TABLE new_table
<b>AS</b>
  SELECT * FROM table1
    UNION
  SELECT * FROM table2;

如果您需要特定顺序的列,请在 select:

中指定它们
CREATE TABLE new_table
AS
SELECT id, column1, column2, column3
FROM table1
UNION
SELECT id, column1, column2, column3
FROM table2;

手册中的更多详细信息:
https://www.postgresql.org/docs/current/static/sql-createtableas.html