Вставить запрос с запросом выбора из 2 таблиц, в которых нет общего столбца для объединения - PullRequest
1 голос
/ 08 октября 2019

Это может быть простой вопрос, но я не знаю, как написать SQL-запрос для этого.

У меня есть сценарий ниже:

Таблица 1:

id    name
1     aaaa
2     bbbb
3     cccc
4     dddd

Таблица 2:

id    name
1     xxxx
2     yyyy

Таблица вывода - Таблица отображения между таблицей 1 и таблицей 2:

id     Table1_id     Table2_id
1         1             1
2         1             2
3         2             1
4         2             2
5         3             1
6         3             2
7         4             1
8         4             2

Я хочу написать запрос на вставку для указанной выше таблицы вывода

SQL, как показано ниже

insert into output_table(table1_id, table2_id)
select table1.table1_id, .... 
from table1 .... ?

Обратите внимание, что между этими двумя таблицами нет соединяющего столбца, и для каждого идентификатора в table1 необходимо сопоставить оба идентификатора (1 и 2) с записью в выходной таблице.

Может кто-нибудь помочь мне написать этот запрос.

Заранее спасибо.

1 Ответ

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

Используйте CROSS JOIN. Это создаст декартово произведение между обеими таблицами, что, по-видимому, является тем, что вы ищете.

INSERT INTO output_table(table1_id, table2_id)
SELECT t1.id, t2.id
FROM table1 t1
CROSS JOIN table2 t2

Это также можно записать следующим образом (используя неявное соединение):

INSERT INTO output_table(table1_id, table2_id)
SELECT t1.id, t2.id
FROM table1 t1, table2 t2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...