Я получил 2 таблицы:
table0: (id,attr0,attr1)
table1: (id,attr0,attr1)
Мне нужно обновить table0
значениями table1
, где t0.id = t1.id
, используя функцию exists
( избежать функции соединения ). Я пробовал что-то вроде этого:
UPDATE table0
SET
attr0 = trn.attr0,
attr1 = trn.attr1
FROM(
SELECT id, max(transaction_date) as attr0,
max(CASE
WHEN transaction_code in ('a', 'b', 'c')
THEN transaction_date
ELSE NULL
END) as attr1
FROM table1
GROUP BY id) trn
WHERE exists (SELECT * FROM table1 WHERE table0.id = trn.id);
Но этот запрос обновляет все строки в table0
, и я не понимаю, почему.
Плз, подскажите, почему это работает не так?