我有两个表,一个包含大量的ID和关于这些ID的信息.
我有第二个表Graph,它只有两列,每列包含前面提到的id号,多次.我想通过仅选择出现在我的图表中的那些ID并创建一个新的较小的Info表来修剪Info表的大小.有一个简单的方法吗?
从SELECT中创建表?
谢谢!
一个
a_h*_*ame 28
它很简单:
create table new_table
as
select t1.col1, t2.col2
from some_table t1
join t2 on t1.id = t2.some_id;
Run Code Online (Sandbox Code Playgroud)
您可以使用任何select语句.新表的列名由查询中使用的列别名定义.
手册中的更多细节:http://www.postgresql.org/docs/current/static/sql-createtableas.html
Ile*_*tel 11
如果您只需要为该会话使用那些小表,则可以创建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;
Run Code Online (Sandbox Code Playgroud)
现在,您可以将此temp_table用于函数中的下一个表.
OR
Run Code Online (Sandbox Code Playgroud)
您也可以创建如下表格(如果您不想将其创建为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;
Run Code Online (Sandbox Code Playgroud)