Вставить значения в столбцы из столбцов из другой таблицы - PullRequest
0 голосов
/ 28 июня 2018

У меня есть следующая таблица:

|   Cod  |  SKA  |   SKB |   SKC  |
|   AGE  |   1   |   10  |   100  |
|   AUC  |   2   |   11  |   101  |
|   BER  |   3   |   12  |   102  |
|   AGE  |   4   |   13  |   103  |
|   AUC  |   5   |   14  |   104  |
|   BER  |   6   |   15  |   105  |

И я хочу добавить эти столбцы в другую таблицу, чтобы они выглядели примерно так:

|   Cod  |  SKA  |   SKB |   SKC  |
|   AGE  |   1   |   10  |   100  |
|   AGE  |   1   |   11  |   101  |
|   AGE  |   1   |   12  |   102  |
|   AGE  |   1   |   13  |   103  |
|   AGE  |   1   |   14  |   104  |
|   AUC  |   1   |   15  |   105  |
|   AUC  |   2   |   10  |   100  |
|   AUC  |   2   |   11  |   101  |
|   AUC  |   2   |   12  |   102  |
|   AUC  |   2   |   13  |   103  |
|   AUC  |   2   |   14  |   104  |
|   AUC  |   2   |   15  |   105  |
|   ...  |   ... |  ...  |   ...  |
|   ...  |   ... |  ...  |   ...  |
|   ...  |   ... |  ...  |   ...  |

Таким образом, каждый Cod, SKB и SKC в соответствии с одним SKA, а затем в соответствии со вторым и т. Д. И это для всех столбцов SK,

Как я могу получить этот результат? С объединением?

EDIT

Спасибо за ваш комментарий и ответы, я попробую кросс-соединение!

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Я думаю, вы хотите, чтобы cross join получил все комбинации из четырех столбцов:

select cod.cod, a.ska, b.skb, c.skc
from (select distinct cod from t) cod cross join
     (select distinct ska from t) a cross join
     (select distinct skb from t) b cross join
     (select distinct skc from t) c ;

Возможно, вам придется настроить этот запрос в соответствии с вашими потребностями. Ваш текст описывает одну вещь, но пример данных немного отличается. Я ожидаю, что AGE/2 будет в результатах.

0 голосов
/ 28 июня 2018

Вы можете достичь этого, присоединив свой стол к себе с cross join. Однако, поскольку в вашем столбце Cod есть повторяющиеся значения, вы можете выбрать строки distinct; в противном случае у вас будут дубликаты.

select distinct
    t1.Cod, 
    t2.SKA, t2.SKB, t2.SKC
from
    mytable t1
    cross join mytable t2

См. Пример в этой SQL Fiddle .

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