Объедините две таблицы в новую, чтобы игнорировать выбранные строки из другой.

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

Пример:

сделки:

date    |location_code| product_code | quantity 
------------+------------------+--------------+----------
2013-01-20 | ABC         | 123          |  -20         
2013-01-23 | ABC         | 123          |  -13.158
2013-02-04 | BCD         | 234          |  -4.063

transactions2:

date    |location_code| product_code | quantity 
------------+------------------+--------------+----------
 2013-01-20 | BDE         | 123          |  -30         
 2013-01-23 | DCF         | 123          |  -2
 2013-02-05 | UXJ         | 234          |  -6

Желаемый результат:

date    |location_code| product_code | quantity 
------------+------------------+--------------+----------
 2013-01-20 | ABC         | 123          |  -20         
 2013-01-23 | ABC         | 123          |  -13.158
 2013-01-23 | DCF         | 123          |  -2
 2013-02-04 | BCD         | 234          |  -4.063
 2013-02-05 | UXJ         | 234          |  -6

Как бы я пошел по этому поводу? Я пробовал например это:

SELECT date, location_code, product_code, type, quantity, location_type, updated_at
      ,period_start_date, period_end_date
   INTO transactions_combined
   FROM ( SELECT * FROM transactions_kitchen k
          UNION ALL
          SELECT *
            FROM transactions_admin h
            WHERE h.date NOT IN (SELECT k.date FROM k)
        ) AS t;

но это не учитывает, что я хотел бы включить строки, которые имеют одинаковую дату, но разное местоположение. У меня есть Postgresql 9.2.

Ответы на вопрос(2)

Ваш ответ на вопрос