Cyb*_*lle 4 postgresql union create-table
我想创建一个新表作为两个没有重复表的并集的结果。我在 stackoverflow 中搜索,发现了一个问题,正是我想要的,但使用 mysql Create a new table from merging两个表与联合。
mysql中的解决方案
CREATE TABLE new_table
SELECT * FROM table1
UNION
SELECT * FROM table2;
Run Code Online (Sandbox Code Playgroud)
我尝试做类似的事情,但我得到了:
SQL 错误。
如果可以使用类似于 mysql 的语句来实现这一点,我想实现这一点。
我知道,如果您首先使用我想要的字段创建一个新表。我可以通过该表的并集对该表进行选择。如果没有其他选择,我必须做这样的事情。
但总而言之,如果可能的话,可以在 postgres 中使用 mysql 做类似的事情。我想使用语法糖来做到这一点
提前致谢
更新
为了澄清我有两个具有相同结构的表
TABLE1(id,field1,field2,field3)
TABLE2(id,field1,field2,field3)
Run Code Online (Sandbox Code Playgroud)
和我想要的桌子
TABLE3(id,field1,field2,field3)
Run Code Online (Sandbox Code Playgroud)
请注意,我尝试过
CREATE TABLE new_table as
SELECT * FROM table1
UNION
SELECT * FROM table2;
Run Code Online (Sandbox Code Playgroud)
它可以工作,但没有将字段放在正确的位置,例如将表 1 的 field3 放在 table_result 的字段 1 中
小智 5
您缺少AS关键字:
CREATE TABLE new_table
AS
SELECT * FROM table1
UNION
SELECT * FROM table2;Run Code Online (Sandbox Code Playgroud)
如果您需要按特定顺序排列列,请在选择中指定它们:
CREATE TABLE new_table
AS
SELECT id, column1, column2, column3
FROM table1
UNION
SELECT id, column1, column2, column3
FROM table2;
Run Code Online (Sandbox Code Playgroud)
手册中的更多详细信息:
https://www.postgresql.org/docs/current/static/sql-createtableas.html
| 归档时间: |
|
| 查看次数: |
11889 次 |
| 最近记录: |