Объединение таблиц без потери информации - PullRequest
1 голос
/ 13 марта 2020

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

TABLE 1
|---------------------|------------------|
|          ID         |        Data1     |
|---------------------|------------------|
|          1          |         34       |
|          2          |         40       |
|          3          |         60       |

TABLE 2
|---------------------|------------------|
|          ID         |        Data2     |
|---------------------|------------------|
|          3          |         100      |
|          2          |         101      |
|          7          |         102      |

То, что я хотел бы, это одна таблица с 3 столбцы примерно такие:

TABLE 3
|---------------------|------------------|------------------|
|          ID         |        Data1     |        Data2     |
|---------------------|------------------|------------------|
|          1          |         34       |       null       |
|          2          |         40       |        40        |
|          3          |         60       |        100       |
|          7          |         null     |        102       |

Я играл с многочисленными объединениями, но, похоже, не могу получить желаемый результат, и я действительно готов дать совет по этому вопросу. Я использую oracle sql на sql разработчику.

Ответы [ 2 ]

2 голосов
/ 13 марта 2020

Вам нужно использовать full outer join с coalesce следующим образом:

select coalesce(t1.id, t2.id), t1.data1, t2.data2 
from table1 t1 full outer join table2 t2
on (t1.id = t2.id)

Cheers !!

0 голосов
/ 13 марта 2020

Я рекомендую full join. Но Oracle также поддерживает предложение using, что очень удобно в этой ситуации:

select id, t1.data1, t2.data2 
from table1 t1 full outer join
     table2 t2
     using (id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...