SQL - Как объединить таблицы, но сохранить все значения для определенного атрибута - PullRequest
0 голосов
/ 03 октября 2019

Я надеюсь, что кто-то может помочь мне с этим. У меня есть две таблицы в ORACLE.

Table A

Date      Count
03.10.19  10
01.10.19  5
30.09.19  15

Таблица B

Date      Count
03.10.19  16
02.10.19  10
29.09.19  2

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

 Date      Table_A Count  Table_B Count 
 03.10.19  10             16
 02.10.19  0              10
 01.10.19  5              0
 30.09.19  15             0
 29.09.19  2              2

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Вам нужно FULL OUTER JOIN с COALESCE. Попробуйте как:

SELECT COALESCE(a.DATE, b.DATE) Date
    ,COALESCE(a.Count, 0) Table_A_Count
    ,COALESCE(b.Count,0 ) Table_B_Count
FROM TableA a
FULL OUTER JOIN TableB b ON a.DATE = b.DATE

Демо

0 голосов
/ 03 октября 2019

MySQL и Oracle поддерживают USING. Это немного упрощает запрос:

SELECT Date ,COALESCE(a.Count, 0) as Table_A_Count,
       COALESCE(b.Count,0 ) Table_B_Count
FROM TableA a FULL OUTER JOIN
     TableB b 
     USING (Date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...