我
它找出離我最近的道路,并給我這條道路的 osm_id。這里的問題是我想從另一個表中獲取點,在該表中我將有多個幾何點,而不僅僅是一個點。由于這個查詢需要使用LIMIT 1才能作業。我可以使用什么方法對我在 a 上的每個點幾何圖形運行相同的查詢different_table?
我可以看到如何通過使用編程語言訪問 PostgreSQL 來解決這個問題,因為我可以進行查詢以從中獲取所有文本點different_table,然后在使用我的第一個查詢并獲取其結果一一。但我不確定這是否是理想的解決方案。我想要一個只使用 PostgreSQL 的解決方案……我該怎么做?如何多次使用帶有 LIMIT 1 陳述句的 ORDER BY 并為存在于不同表中的每個幾何圖形執行它(每一行將是不同的點,例如'SRID=3857;POINT(-3890646.5744145643 -899377.0801662721)'::GEOMETRY)?
uj5u.com熱心網友回復:
您需要一個橫向連接,它為另一個表的每一行執行一次子查詢:
SELECT diff_id, way, osm_id, osm.way <-> diff_geog as distance
FROM different_table cross join lateral (
select way, osm_id from osm
ORDER BY osm.way <-> diff_geog LIMIT 1
) osm ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463034.html
標籤:PostgreSQL 地理信息系统
