Я пытаюсь обновить временную таблицу транзакций со значениями из таблицы владений. Поля, которые я хочу получить, принадлежат хозяйству с наименьшей датой, превышающей дату транзакции.
Когда я использую оператор SELECT ниже, отображаются правильные значения:
SELECT h.*
FROM transaction_tmp tt
JOIN holdings h
ON tt.isin = h.isin
AND tt.portfolio = h.portfolio
WHERE h.start_date > tt.tr_date
ORDER BY h.start_date
LIMIT 1
Однако, когда я использую приведенную ниже инструкцию UPDATE, неверные значения выбираются / обновляются в транзакции_tmp:
UPDATE transaction_tmp tt
JOIN holdings h
ON tt.isin = h.isin
AND tt.portfolio = h.portfolio
SET
tt.next_id = h.id,
tt.next_start_date = h.start_date
WHERE h.start_date > tt.tr_date
ORDER BY h.start_date
LIMIT 1
Я думаю, что утверждение WHERE не работает должным образом, но, к сожалению, я не могу понять, как это исправить.
Цените любую помощь здесь!
-Joost