SQL: один запрос на выборку из 2 не присоединяющихся таблиц - PullRequest
2 голосов
/ 15 июля 2010

У меня есть 2 таблицы, которые не имеют никаких ссылок друг на друга, и я пытаюсь создать третью таблицу (для поиска ссылок), выбирая из полей обеих таблиц.хочу создать таблицу C, которая имеет ссылку 1: 1 между A_ID и B_ID, где A_ID = FirstID и B_ID = SecondID, я не могу объединить две таблицы, потому что между ними нет ничего общего.*

Insert INTO [TableC]
(FirstID, SecondID)
SELECT
A_ID As FirstID,
(Select B_ID From TableB)
FROM TableA

По сути, мы сейчас создаем связь с таблицей C, чтобы мы могли использовать ее для ссылки на две таблицы в будущем, используя их идентификаторы.

1 Ответ

8 голосов
/ 15 июля 2010

Если предположить, что таблицы TableA и TableB действительно не имеют ничего общего, то вы хотите получить декартово произведение, то есть для каждой строки в A раз для каждой строки в B.присоединиться к ним с помощью ROW_NUMBER ().

INSERT INTO TableC(FirstID,SecondID)
SELECT A_ID,B_ID
FROM (SELECT A_ID,ROW_NUMBER() OVER (ORDER BY whatever) as rownumA FROM TableA) a
FULL OUTER JOIN (SELECT B_ID,ROW_NUMBER() OVER (ORDER BY whatever) as rownumB FROM TableB) b ON a.rownumA=b.rownumB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...