PostgreSQL:COPY命令可以用于从多个表复制列吗?
我想将多个表中的列中的值复制到csv文件中,不确定posgres copy命令是否支持从多个表中复制列 下面是一个简单的例子,说明了我想使用下表做的事情:PostgreSQL:COPY命令可以用于从多个表复制列吗?,sql,postgresql,Sql,Postgresql,我想将多个表中的列中的值复制到csv文件中,不确定posgres copy命令是否支持从多个表中复制列 下面是一个简单的例子,说明了我想使用下表做的事情: environment ╔════════╦═══════════╦══════╦══════╗ ║ env_id ║ placem_id ║ humd ║ wind ║ ╠════════╬═══════════╬══════╬══════╣ ║ 104║ 4 ║ 48 ║ 119 ║ ║ 68 ║
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 ║
╚════════╩═══════════╩═══════════╩════════════════════╝
我想使用placement表中的placem_id和loc_id从environment表和location表中选择记录
可以使用下面的复制函数语法复制来自多个表的这些列:
\copy products TO '/tmp/products.csv' CSV DELIMITER ','
编辑:
我对《环境》杂志的humd和wind专栏感兴趣;然后列从位置表记录lat和地址。您可以发送查询,而不必使用控制台:
将Select humd、wind、log、lat、地址从位置自然连接放置自然连接环境复制到“/tmp/test.csv”,并使用csv分隔符“,” 您可以发送查询,而不是使用控制台:
将Select humd、wind、log、lat、地址从位置自然连接放置自然连接环境复制到“/tmp/test.csv”,并使用csv分隔符“,” 但我只对选定数量的列感兴趣,而不是所有列,即环境表中的humd和wind;来自位置表的日志、lat和地址。您可以使用具有设置数量的列的查询,而不是“*”,甚至可以使用联接、并集等,但您将其作为一个块,这将是无用的,如果要使用结果将数据还原到单独的表中。@StasShafeev他可能需要csv格式的报告。@arilwan只需按照建议对列执行操作:指定所需的列。我使用内部联接将查询传递到\COPY命令,它可以工作。但我只对选定的列数感兴趣,而不是所有列,即,环境表中的humd和风;来自位置表的日志、lat和地址。您可以使用具有设置数量的列的查询,而不是“*”,甚至可以使用联接、并集等,但您将其作为一个块,这将是无用的,如果要使用结果将数据还原到单独的表中。@StasShafeev他可能需要csv格式的报告。@arilwan只需按照建议对列执行操作:指定所需的列。我使用“内部联接”将查询传递到\COPY命令,就可以了。