使用union在postgres中创建Union两个表的新表
我想创建一个新表作为两个表的联合而不重复的结果。我在stackoverflow搜索,我发现一个问题,正是我想要的,但使用mysql Create a new table from merging two tables with union。在MySQL使用union在postgres中创建Union两个表的新表
解决方案
CREATE TABLE new_table
SELECT * FROM table1
UNION
SELECT * FROM table2;
我试图做同样的事情,但我得到:
SQL错误。
我想实现这一点,如果有可能与类似于mysql的声明。
我知道如果你首先用我想要的字段创建一个新表。我可以通过这个表的联合对此表进行选择。如果没有其他选择,我必须做这样的事情。
但是总结如果可能在postgres中用mysql做一些类似的问题。我想用语法糖做
在此先感谢
更新
为了澄清我有两个表具有相同的结构
TABLE1(id,field1,field2,field3)
TABLE2(id,field1,field2,field3)
,并在表我想要
TABLE3(id,field1,field2,field3)
请注意,我试图
CREATE TABLE new_table as
SELECT * FROM table1
UNION
SELECT * FROM table2;
和它的作品,但并没有把字段例如正确的位置摆台1场3场中的1 table_result
你缺少AS
关键字:
CREATE TABLE new_table
AS
SELECT * FROM table1
UNION
SELECT * FROM table2;
如果你需要在一个特定的顺序列,那么在选择指定它们:
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
还行,但请检阅我的更新 – Cyberguille
我认为选择的顺序很重要 – Cyberguille
@Cyberguille:看到我的更新,你需要指定列明确。另一个很好的例子,为什么'选择*'应该避免 –
在看一看:https://stackoverflow.com/questions/22953450/postgres-create-table-from-select – McNets
@McNets非常感谢我只缺少当你回答这个我去接受,基本上是有用的这个答案对我来说https://stackoverflow.com/a/22953921/2399444 – Cyberguille
@McNets在我的情况下,请注意,我不想在我的新表,我有一个列ID – Cyberguille