繁体   English   中英

Postgres - 从选择创建表

[英]Postgres - CREATE TABLE FROM SELECT

我有两个表,一个包含有关这些 ID 的 ID 和信息的大列表。

我有第二个表Graph ,它只有两列,每列多次包含上述 ID 号。 我想通过仅选择出现在我的图表中的那些 id 并创建一个新的较小的 Info 表来trim我的Info表的大小。 有没有一种简单的方法可以做到这一点?

CREATE TABLE FROM SELECT? 

谢谢!

这很简单:

create table new_table
as 
select t1.col1, t2.col2
from some_table t1
   join t2 on t1.id = t2.some_id;

您可以为此使用任何选择语句。 新表的列名由查询中使用的列别名定义。

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

如果您只需要该会话的那些小表,您可以创建 TEMP 表。 您可以使用以下查询来做到这一点。

  DROP TABLE IF EXISTS temp_table;
    CREATE TEMP TABLE temp_table AS
     SELECT 
       i.id as info_id, i.information as information
     FROM
      info i
      INNER JOIN graph g ON i.id = g.id;

现在您可以将此 temp_table 用于函数中的下一个表。

                    OR 

您还可以创建如下表(如果您不想将其创建为 TEMP):

CREATE TABLE temp_table AS
     SELECT 
       i.id as info_id, i.information as information
     FROM
      info i
      INNER JOIN graph g ON i.id = g.id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM