Вернуть весь набор записей x раз (где x - количество строк в другой таблице) - PullRequest
1 голос
/ 02 апреля 2011

Допустим, у меня есть 2 таблицы.

TableA имеет только один столбец и выглядит следующим образом (он всегда будет иметь только один столбец, но значения в этом столбце будут меняться со временем):

TableA
------
Column1:
   A
   G
   T
   R

В таблице B много столбцов (но ни один из этих столбцов никогда не будет соответствовать значению столбца 1 таблицы A). т.е.

TableB
------
Column1:     Column2:      Column3:    
   65           xyz          fgdsg
   97           tmkl          sjg
   184          soi           trhd

Я бы хотел иметь возможность вернуть приведенный ниже набор результатов в запросе:

 TabA.Column1:   TabB.Column1:   TabB.Column2:      TabB.Column3:
 -------------   ------------     ------------        ----------    
       A              65           xyz                  fgdsg
       A              97           tmkl                  sjg
       A              184          soi                   trhd
       G              65           xyz                  fgdsg
       G              97           tmkl                  sjg
       G              184          soi                   trhd
       T              65           xyz                  fgdsg
       T              97           tmkl                  sjg
       T              184          soi                   trhd
       R              65           xyz                  fgdsg
       R              97           tmkl                  sjg
       R              184          soi                   trhd

Чтобы достичь этого, я подумал о объединении TableB x раз, где x - это счетчик из TableA, но я не думаю, что вы можете динамически создавать x число объединений только в SQL. Я ищу только решение в коде SQL (оно может включать использование предопределенных функций PL / SQL).

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

То, что вы хотите, это перекрестное соединение.Объединяя все от таблицы А до таблицы Б.

SELECT * FROM TableA  
CROSS JOIN TableB
1 голос
/ 02 апреля 2011

Просто CROSS JOIN не работает? В результате перекрестного соединения получается декартово произведение входных множеств.

SELECT * FROM TableA CROSS JOIN TableB

Счастливое кодирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...