从选定的特征 QGIS 中选择表(postgis)中的行

Posted

技术标签:

【中文标题】从选定的特征 QGIS 中选择表(postgis)中的行【英文标题】:Select rows in a table (postgis) from selected features QGIS 【发布时间】:2018-10-18 12:56:55 【问题描述】:

如何根据另一个表中的键 (PK) 选择表中的行。我从一层中选择了位于地理区域内的多个多边形。

所选图层的属性表如下所示:

| Bloknr | Column 1 | Column 2 | Column 3 |
| 111-08 | xqyz     | xyzq     | qxyz     |
| 208-09 | abc      | cba      | bca      |

选择相关行(第 1 行)的位置。

我现在想从非地理图层(来自 postgresql 数据库)中选择这一行,表格如下所示:

| BLOKNR | Column 1  | Column 2  | Column 3  |
| 111-08 | cab       | bac       | cab       |
| 208-09 | abc       | cba       | bca       |
| 111-08 | cba       | bca       | cab       |

要选择第一行和第三行的位置。

postgres 表中有大约 20.000.000 行,每个 bloknr 上有多个匹配项

我在qgis ver. 3.2postgresql with PGadmin4工作

非常感谢任何帮助。

更新回答cmets

这很简单,如果是在 postgres 中做这件事 - 它是为此而设计的 - 但我不知道如何在 qgis 中查询我不想导出每个表(我有一个很少,对于每个我需要多个选择查询,基于地理)到postgresql - 部分是因为我想将工作流保留在qgis中,部分是因为qgis的数据库管理器中的导出功能给了我这个错误 - 我认为意味着我必须手动制作所有表格。

" 错误:函数 addgeometrycolumn(未知,未知,未知, integer, unknown, integer) 不存在 LINE 1: SELECT AddGeometryColumn('public','Test',NULL,0,'MULTIPOLYGO...

提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。”

再次感谢任何帮助。

【问题讨论】:

抱歉,名称已编辑。如果表这么小,那将是一种简单的方法,但我需要在表 1 中找到选定的(大约)200 个多边形,并在表 2 中找到所有匹配的行(即在 bloknr 上匹配),它大约有 20.000。 000 个条目。 您实际尝试过什么?这是一个非常简单的问题(您可以在每个 SQL 教程中找到表之间的 SQL 连接基础知识)。向我们展示您尝试了什么,什么失败了。 我希望更新能解答您对我的工作流程的疑问 - 但我确实是 postgis 的初学者,并且对 SQL 也有一定程度的了解,尽管我已经掌握了窍门。问题可能是由于上述错误,无法将矢量图层导出到 qgis。 【参考方案1】:

所以我想出了一个答案,理论上可行。

首先进行所需的地理选择,然后使用该选择创建一个新图层

然后将图层导出到您所连接的 postgis 数据库 现在可以在 postgresql 和 PGadmin 中进行查询。

请注意,这不会将工作流保留在 qgis 中 - 并且为了进一步处理统计数据等。必须在新的 postgis 层和其中的选择之间进行集成 - 它并不能完全解决地理/基于地图的选择方法 - 虽然它会工作

【讨论】:

以上是关于从选定的特征 QGIS 中选择表(postgis)中的行的主要内容,如果未能解决你的问题,请参考以下文章

对唯一行值进行分组 Postgis、postgres 和 Qgis

(转)PostGIS+QGIS+GeoServer+OpenLayers实现数据的存储服务的发布以及地图的显示

如何快速入门qgis二次开发

QGIS 3.4 - 使用 QgsProject.instance().addMapLayer() 添加图层时出现问题

如何按纬度和经度(Postgis)从表中选择多边形

如何用qgis将shp图层导入postgres sql 数据库