Tôi không chắc chính xác những gì bạn muốn làm. Tuy nhiên, bạn có thể đặt bất kỳ select nào trong phần chèn insert . . . select và vẫn sử dụng on duplicate key update . Ví dụ:
insert into Table1(field1, field2)
select 1, 2
from table1 t1 join
table2 t2
on t2.id = t1.field_id
where t2.addr = '123456'
on duplicate key update field1 = 1, field2 = 2;