2017-09-04 17 views
0

実際のガイドブックをpgroutingから作成していますが、独自のテーブルを使用してこのエラーが発生しました。私はLIMIT 1を使ってこの本の例のようにこのエラーを回避していますが、別のエラーがあるはずです。修正に関するアイデアはありますか?エラー:式として使用されるサブクエリによって複数の行が返される

ERROR:

more than one row returned by a subquery used as an expression

SELECT * 
    FROM pgr_drivingDistance(
    'SELECT id, source, target, 
     cost 
     FROM network.roads', 
    (SELECT v.id 
     FROM network.master_table AS h 
     ,LATERAL (SELECT id FROM network.roads_vertices_pgr AS n 
      ORDER BY h.geom <-> n.the_geom LIMIT 1) AS v), 
     5000, false, false 
    ); 

答えて

1

リミット1は、エラーが、全体サブクエリに

network.master_tableCROSS JOIN LATERAL
(SELECT v.id 
     FROM network.master_table AS h 
     ,LATERAL (SELECT id FROM network.roads_vertices_pgr AS n 
      ORDER BY h.geom <-> n.the_geom LIMIT 1) AS v) 

とある

SELECT id FROM network.roads_vertices_pgr AS n 
     ORDER BY h.geom <-> n.the_geom LIMIT 1 

でありますレスル(あなたは1つの行であることを知っています)。したがって、network.master_tableのSELECTによって複数の行が返された場合は、そのエラーが発生します。

関連する問題