Обновление Марии из союза - или предложение

У меня есть база данных Maria, и я пытаюсь обновить таблицу из двух других таблиц. Архивная таблица — данные с метками времени до 00 UTC прошлой ночи. Текущие - данные с меткой времени от 00 до настоящего времени. Я хочу скопировать результаты из обеих таблиц в столбец сводной таблицы.

Archive Table 
time|result
1   A
2   B
3   C
4   D
5   E

Current table:
time|result
6   1
7   2
8   3
9   4
10  5

Summary Table:
time|result
1   A   
2   B
3   C
4   D
5   E
6   1
7   2
8   3
9   4
10  5

Я смог обновить на основе одного ВНУТРЕННЕГО СОЕДИНЕНИЯ между сводной таблицей и либо архивом, либо текущей таблицей независимо, но я не смог понять, как это объединить.

Поскольку Архив и Текущий идентичны и не пересекаются, кажется, что я должен ОБЪЕДИНИТЬ архив и текущий, а затем обновить сводную таблицу? Я также пытался выполнить два LEFT OUTER JOINS и отфильтровать NULLS, но мне все еще чего-то не хватает.

Это то, что я должен использовать для подзапроса?

Я совершенно новичок в этом, и мне нужно всего лишь пройти пару запросов для проекта. Я надеюсь, что кто-то может помочь указать мне в правильном направлении.

Спасибо за любой совет


person Dan W    schedule 19.09.2018    source источник


Ответы (1)


Из вашего вопроса я не уверен, пуста ли ваша таблица Summary или нет.

Предполагая, что он пуст и вам нужно его заполнить, тогда подойдет UNION ALL, который не удаляет дубликаты и экономит время (в отличие от UNION, который под капотом сортирует записи, а затем удаляет дубликаты):

insert into summary_table (time, result)
select time, result from archive_table
union all
select time, result from current_table
person Kamil Gosciminski    schedule 19.09.2018