Я хочу запустить алгоритм кратчайшего пути сразу для нескольких исходных и целевых пар, получить результат в виде таблицы и затем обработать его.
Как мне это сделать? Этот запрос не работает:
SELECT a.source, a.target, paths.*
FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths;
ERROR: function expression in FROM cannot refer to other relations of same query level
(Кстати, all_to_all не означает буквально все для всех, :) это просто несколько случайных пар)
Это тоже не работает:
SELECT *
FROM all_to_all a, (
SELECT * FROM shortest_path_astar('...', a.source, a.target, false, false) yyy
) AS t2;
postgis
postgresql
routing
pgrouting
culebrón
источник
источник
Ответы:
Что-то вроде
источник
Вот запрос, который возвращает все сегменты для всех комбинаций источник-цель:
Невероятно, несовместимо с синтаксисом SQL, но работает!
источник