Правилният синтаксис в MySQL е:
INSERT INTO XYZ (PARENT_JOB_NAME, CHILD_JOB_NAME, FIRST_EXECUTION, SANDBOX, PLATFORM_NAME)
SELECT ITRR.WORKFLOW_NAME, ITRR.INSTANCE_NAME,
MIN(ITRR.START_TIME), ITRR.SUBJECT_AREA, 'INFORMATICA'
FROM ABC IWRR JOIN
DEF ITRR
ON IWRR.WORKFLOW_RUN_ID = ITRR.WORKFLOW_RUN_ID
WHERE IWRR.USER_NAME IN ('XYZ') AND
ITRR.RUN_STATUS_CODE <> 2
GROUP BY ITRR.WORKFLOW_NAME, ITRR.INSTANCE_NAME, ITRR.SUBJECT_AREA
ON DUPLICATE KEY UPDATE FIRST_EXECUTION = VALUES(FIRST_EXECUTION);
Обърнете внимание на използването на правилни, изрични, стандартни , четим JOIN
синтаксис. Използвайте го.
Основните промени са
- Коригиране на архаичния синтаксис.
- Премахването на скоби не е необходимо за
select
вinsert . . . select
(въпреки че вероятно са разрешени). - Премахване на псевдонима на таблицата, което определено не е разрешено.
- Коригиране на
on duplicate key
изявление.