У меня есть три таблицы в Oracle:
HOTEL: список номеров отелей, названий отелей и идентификатора города, в котором расположен отель. Здесь 5 строк (имеется в виду 5 отелей, но не в каждом городе есть отель).
ГОРОД: список идентификаторов города, названия города, долготы города и широты города. Здесь 15 строк (имеется в виду 15 городов).
ТУРИСТИЧЕСКОЕ ПРИВЛЕЧЕНИЕ: Укажите номер достопримечательности, название достопримечательности и идентификатор города, в котором находится достопримечательность. Здесь 20 рядов (имеется в виду 20 туристических достопримечательностей, в некоторых городах может быть несколько достопримечательностей, в других городах может не быть достопримечательностей).
В основном я хочу определить прямые расстояния между каждым отелем икаждая достопримечательность. Например, мне нужно расстояние между отелем 1 и аттракционом 1, затем расстояние между отелем 1 и аттракционом 2, расстояние между отелем 1 и аттракционом 3 и т. Д.
Чтобы вычислить расстояние, на котором я нахожусьиспользуя функцию геодистанции (ВЫБЕРИТЕ геодистанцию (широта 1, долгота 1, широта 2, долгота 2) ОТ двойного).
Я могу получить список отелей и их соответствующих долгот и широт, присоединив ОТЕЛЬ к ГОРОДУ по ID города. Я также могу получить список туристических достопримечательностей и их соответствующие долготы и широты, присоединившись TOURIST ATTRACTION к TOWN на ID города, но в другом запросе. Когда я пытаюсь написать один запрос, я получаю сообщение об ошибке «подзапрос одной строки возвращает более одной строки».
Одним из ограничений является то, что перекрестное соединение НЕ МОЖЕТ использоваться для получения требуемых результатов. Я хочу, чтобы мои выходные данные составляли 100 строк (20 расстояний от отеля до аттракциона для каждого отеля), но я абсолютно не представляю, как это сделать без использования перекрестного соединения.
Любая помощь приветствуется.
Заранее спасибо!