Как написать SQL-запрос для объединения двух уже упорядоченных таблиц по горизонтали с разными столбцами? - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть две таблицы, которые я бы хотел разместить бок о бок точно так, как они есть.Например,

tableOne                              tableTwo
columnOne | columnTwo | columnThree   columnI | columnII | columnIII

Данные в этих двух таблицах не должны быть связаны вообще - таблицы имеют одинаковое количество строк - и данные уже отсортированы в этих двух таблицах.По сути, я хотел бы сделать full outer join для двух таблиц без оператора on.

Как я могу сделать это в запросе SQL?

1 Ответ

4 голосов
/ 02 ноября 2011

Ну, вы хотите хотите включить оператор - вы просто хотите, чтобы он работал автоматически, чего не произойдет.

Если вы говорите, что 1-я строка в tableOne отображается на 1-ю строку в tableTwo, вам нужно добавить столбец строк в каждую таблицу и затем присоединиться к ней.

Если вы не укажете условие соединения, вы сделаете cross join, который соединит каждую строку от tableOne с каждой строкой в ​​tableTwo, что, очевидно, не то, что вы ищете.

Так что сделайте что-то вроде этого:

select * from 
  (select *, row_number() over (order by 1) as RN from tableOne) a
  inner join (select *, row_number() over (order by 1) as RN from tableTwo) b
     on a.RN = b.RN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...