Я думаю, что лучший способ написать эти утверждения - это поместить данные, которые вы пытаетесь объединить, в предложение USING
. И вы не даете нам свою оговорку ON
, поэтому я не могу точно сказать, как это работает.
MERGE INTO table_a A
USING ( SELECT B.id, C.col_1, C.col_2
FROM table_c B
LEFT JOIN table_c C on C.id = B.id ) D
ON ( A.id = D.id )
WHEN NOT MATCHED THEN INSERT ( col_3, col_4 )
VALUES ( D.col_1, D.col_2 )