SQL: объединение одной строки из одной таблицы во все строки другой таблицы - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь вычислить расстояние между каждым городом по отношению к некоторым местоположениям.

У меня есть таблица TOWN с несколькими городами как:

Town No | Latitude | Longitude |
Town 1       | -20      | 100       |
Town 2       | -30      | 120       |

У меня есть таблица LOCATIONс несколькими местоположениями как:

Loc No  | Latitude | Longitude |
Loc 1       | -25      | 150       |
Loc 2       | -30      | 150       |
Loc 3       | -18      | 120       |

В основном я хочу объединить эти таблицы так, чтобы:

Town No | Latitude | Longitude | Loc No | Latitude | Longitude |
Town 1       | -20      | 100       | Loc 1      | -25      | 150       |
Town 1       | -20      | 100       | Loc 2      | -30      | 150       |
Town 1       | -20      | 100       | Loc 3      | -18      | 120       |
Town 2       | -30      | 120       | Loc 1      | -25      | 150       |
... and so on

Я выбрал данные из таблиц города и местоположения, но в двухотдельные запросы. Я не могу понять, как написать это в одном запросе, чтобы получить желаемый результат - я продолжаю получать сообщение об ошибке, в котором говорится, что подзапрос одной строки возвращает более одной строки. Я застрял здесь - любая помощь будет оценена. Извините, если это не имеет смысла, пожалуйста, дайте мне знать, и я предоставлю более подробную информацию.

Ответы [ 3 ]

2 голосов
/ 18 октября 2019

Вы можете использовать кросс-соединение.

Select t1.*, t2.*
From town t1 cross join location t2

Cheers !!

1 голос
/ 18 октября 2019

Вы, кажется, хотите cross join:

select t.*, l.*
from town t cross join
     location l;
0 голосов
/ 18 октября 2019

Попробуйте ниже:

select t1.*, t2.*
from town t1 join
     location t2
     on 1 = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...