2016-04-01 21 views
0

,我有以下表結構中一個Postgres DB:Postgres的執行多表中的數據比較

表區:

id - int, PK 
name - varchar 

表zone_boundaries

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

表車輛

id - int, PK 
vehicle_registration - varchar 

表vehicle_logs

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

在區域邊界表中的邊界列保持由zone_id作爲多邊形數據所指定的區域的緯度/經度座標。

現在,我想要獲取所有車輛的lat/lng座標落在select語句的zone_boundaries表中區域邊界內的數量。我如何編寫這個查詢?

回答

0

獲得這一個通過將是棘手。首先,您需要轉換你的經緯度,例如:

ST_GeometryFromText('POINT(x y)'); 

後,您可以使用ST_Intersects。無論兩個幾何是否相交,St_Intersects都會返回。或者,您可以使用ST_CONTAINS。