PostgreSQL:可以使用COPY命令从多个表中复制列吗?

时间:2019-05-27 03:09:04

标签: sql postgresql

我想将多个表中的列的值复制到一个csv文件中,不确定posgres COPY命令是否支持从多个表中复制列。

这是我要使用下表进行的处理的简化示例:

environment
╔════════╦═══════════╦══════╦══════╗
║ env_id ║ placem_id ║ humd ║ wind ║
╠════════╬═══════════╬══════╬══════╣
║     104║        4  ║   48 ║  119 ║
║     68 ║        9  ║   39 ║  141 ║
╚════════╩═══════════╩══════╩══════╝

placement
╔═══════════╦════════╦═══════════════╦══════════════════════════╗
║ placem_id ║ loc_id ║  description  ║           date           ║
╠═══════════╬════════╬═══════════════╬══════════════════════════╣
║         4 ║     64 ║ description_1 ║ 2019-03-12T20:40:35.967Z ║
║         7 ║      5 ║ description_2 ║ 2019-03-12T20:56:51.319Z ║
╚═══════════╩════════╩═══════════════╩══════════════════════════╝

location
╔════════╦═══════════╦═══════════╦════════════════════╗
║ loc_id ║    log    ║    lat    ║      address       ║
╠════════╬═══════════╬═══════════╬════════════════════╣
║     64 ║ 13.3986   ║ 52.5547   ║ Bosebrucke Einkauf ║
║     71 ║ 21.150122 ║ -6.607044 ║ Charlotte Court    ║
╚════════╩═══════════╩═══════════╩════════════════════╝

我想使用environment表中的locationplacem_idloc_id表和placement表中选择记录。

可以使用下面的COPY函数语法复制来自多个表的这些列:

\copy products TO '/tmp/products.csv' CSV DELIMITER ','

编辑:

我对humd表中的windenvironment列感兴趣;然后是log表中的lat addresslocation列。

1 个答案:

答案 0 :(得分:2)

您可以发送查询,而不使用控制台:

复制(选择humd,wind,log,lat,address从位置自然连接放置自然连接环境)到'/tmp/test.csv',使用CSV DELIMITER',';