首页 > 解决方案 > 从 postgresql 中的 2 个单独的表中复制数据

问题描述

只是想知道是否可以在 postgresql 中一次从 2 个不同的表中提取数据

我有以下内容:

块表 - 已按如下方式创建以适应模式,因此 JSON 信息已全部存储在每个包含 36 个多边形的信息列中

UUID (UUID) 名称(文本) 类型(文本) 信息(文本)
815b2ce7-ce99-4d6c-b41a-bec512173f53 C2 堵塞 '存储的 JSON 信息'
7a9a03fc-8be6-47ca-b743-43715ebb5610 D2 堵塞 '存储的 JSON 信息'
9136dcda-2a55-4084-87c1-68ccde23aed8 E3 堵塞 '存储的 JSON 信息'

对于以后的查询,我需要知道每个多边形的几何形状,所以我使用解析它们的代码创建了另一个表:

CREATE TABLE blockc2_ AS SELECT geom FROM (SELECT elem->>'type' AS type, elem->'properties' AS prop, elem->'geometry' AS geom FROM (SELECT json_array_elements(data) elem FROM block) f1)f2;

创建了一个最终表以仅显示几何图形(它将与已创建的 UID 相关联,如下所示

新表

UUID (UUID) 几何(几何)
815b2ce7-ce99-4d6c-b41a-bec512173f53 01030000000100000005000000972E05A56D6851C084D91C434C6C32401C05D4886B6851C086D974FA4D6C324078F4DA916D6851C036BF7504766C3240F31D0CAE6F6851C035BF1D4D746C3240972E05A56D6851C084D91C434C6C3240
7a9a03fc-8be6-47ca-b743-43715ebb5610 01030000000100000005000000BB05694F726851C0CB2A87A8486C32403EDC3733706851C0CD2ADF5F4A6C32409ACB3E3C726851C07E10E069726C324017F56F58746851C07C1088B2706C3240BB05694F726851C0CB2A87A8486C3240
9136dcda-2a55-4084-87c1-68ccde23aed8 1030000000100000005000000972E05A56D6851C084D91C434C6C32401C05D4886B6851C086D974FA4D6C324078F4DA916D6851C036BF7504766C3240F31D0CAE6F6851C035BF1D4D746C3240972E05A56D6851C084D91C434C6C3240

理想情况下,我需要像下面这样的代码(如果可能的话),因为如果我单独插入它们,它们就不会相互关联。而不是 3 行信息,它将是 6(3 个 UUIDS 和 3 个几何)

INSERT INTO new_table (uuid, geometry) SELECT UUID FROM blocks WHERE Name='C2' AND SELECT geometry FROM second_table WHERE Name='C2'

这样的事情可能吗?

标签: sqljsonpostgresql

解决方案


创建表 C (select * from table B union all select * from table A)


推荐阅读