我想将多个表中的列的值复制到一个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
表中的location
和placem_id
从loc_id
表和placement
表中选择记录。
可以使用下面的COPY
函数语法复制来自多个表的这些列:
\copy products TO '/tmp/products.csv' CSV DELIMITER ','
编辑:
我对humd
表中的wind
和environment
列感兴趣;然后是log
表中的lat
address
和location
列。
答案 0 :(得分:2)
您可以发送查询,而不使用控制台:
复制(选择humd,wind,log,lat,address从位置自然连接放置自然连接环境)到'/tmp/test.csv',使用CSV DELIMITER',';