Я создал таблицу A следующим образом:
Я вставил приведенные выше данные, используя простой оператор INSERT INTO и SELECT. Теперь, когда исходные данные исправлены, я хочу использовать INSERT INTO, SELECT, ON DUPLICATE KEY UPDATE, но когда я запускаю код, 0 и NULL, который вы видите выше, не обновляется до нового значения.
Вот мой код
INSERT INTO
TABLEA (uniqueid, year, month, costcentre, amount)
SELECT
SS.uniquekey, SS.year, SS.month, SS.source, SS.totalamount
FROM
(SELECT
uniquekey, `YEAR`, `MONTH`, SOURCE, totalamount
FROM
TABLEB
UNION ALL
SELECT
uniquekey, `YEAR`, `MONTH`, SOURCE, totalamount
FROM
TABLEC
) as SS
ON DUPLICATE KEY
UPDATE
TABLEA.YEAR = VALUES(SS.year),
TABLEA.MONTH = VALUES(SS.month),
TABLEA.COSTCENTRE = VALUES(SS.SOURCE),
TABLEA.AMOUNT = VALUES(SS.TOTALAMOUNT)
;
Итак, ответ, который я ищу, таков:
- Я хочу, чтобы в TABLEA была строка для каждого UNIQUE в запросе SELECT.
- Если TABLEA содержит тот же UNIQUEID, что и SELECT, я хочу, чтобы он обновлял YEAR, MONTH, < strong>COSTCENTRE, AMOUNT из запроса SELECT