С coalesce()
:
select
t1.id,
coalesce(t1.exp, t2.exp) exp,
coalesce(t1.last, t2.last) last,
from table1 t1 inner join table2 t2
on t2.id = t1.id
это дает приоритет table1
значениям, если они не null
.Также, если есть случай, когда количество строк в 2 таблицах не одинаково, то вы должны использовать left join
из таблицы с наибольшим количеством строк в другой.Если вы хотите вставить эти строки в table3
:
insert into table3 (id, exp, last)
select
t1.id,
coalesce(t1.exp, t2.exp) exp,
coalesce(t1.last, t2.last) last,
from table1 t1 inner join table2 t2
on t2.id = t1.id