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多表查询出来的数据在C#中用啥装载比较好,是泛型集合还是集合??还有其他的可以装吗??