从选定的特征 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.2
和postgresql 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实现数据的存储服务的发布以及地图的显示