У меня есть таблица Transport
, в которой 2 fks указывают на таблицу Spot
. эти фкс хранят origin
и destination
транспорта.
Мне нужно сделать запрос, который получает минимальное расстояние между точкой и началом координат и между одной и той же точкой и пунктом назначения.
Это то, что я сделал, хотя это дает мне 34 результата и должно быть 17. Я знаю, что я делаю это неправильно, но я не могу правильно понять запрос:
SELECT LEAST(
ST_Distance(ST_GeographyFromText('SRID=4326; POINT(-3 40)'), s.point),
ST_Distance(ST_GeographyFromText('SRID=4326; POINT(-3 40)'), s.point)
) FROM spot s RIGHT OUTER JOIN transport t
ON t.origin = s.id OR t.destination = s.id;
Очевидно, я не должен использовать ИЛИ здесь. Я пытался сделать двойное соединение, но не понял правильно.
Спасибо за вашу помощь