Postgres 执行多表数据比较

Posted

技术标签:

【中文标题】Postgres 执行多表数据比较【英文标题】:Postgres Perform Multi table data comparison 【发布时间】:2016-04-01 13:51:36 【问题描述】:

我在 Postgres DB 中有以下表结构:

表格区域:

id - int, PK
name - varchar

表格 zone_boundaries

id - int, PK
zone_id - FK (zones.id),
boundary - polygon

桌车

id - int, PK
vehicle_registration - varchar

表格车辆日志

id - int, PK
vehicle_id - int, FK (vehicles.id)
latitude - float
longitude - float

区域边界表中的边界列将 zone_id 指定的区域的纬度/经度坐标保存为多边形数据。

现在,我想在 select 语句中获取其 lat/lng 坐标落在 zone_boundaries 表中区域边界内的所有车辆的数量。如何编写此查询?

【问题讨论】:

【参考方案1】:

获得这一通行证会很棘手。首先,您需要转换 latitude 和 longitude ,例如:

ST_GeometryFromText('POINT(x y)');

之后,您可以使用 ST_Intersects。 St_Intersects 将返回两个几何是否相交。或者,您可以使用 ST_CONTAINS。

【讨论】:

以上是关于Postgres 执行多表数据比较的主要内容,如果未能解决你的问题,请参考以下文章

SQL 语句,postgres的数据库的连表查询

知了堂学习笔记SQL查询基础语句(单表查询多表查询)

sql多表查询出来的数据在C#中用啥装载比较好,是泛型集合还是集合??还有其他的可以装吗??

数据库多表查询

sql多表关联,数据量比较大的分页查询,怎么做,有没有较好的方法,

数据库多表连接方式介绍-HASH-JOIN