Я бы просто добавил еще одну строку в country_iso:
select tb2.*, tb1.id, tb1.country
from tb2 left join
(select id, country as match_country, country
from tb1
union all
select tb1.id, 'Scotland', tb1.country
from tb1
where tb1.id = 1
) tb1
on tb1.country = tb2.match_country;
Подзапрос предлагает, возможно, новую таблицу для вашей базы данных, чтобы упростить эти преобразования.
В качестве альтернативы, вы можете использовать left join
и coalesce()
:
select tb2.*,
(case when tb2.country = 'Scotland' then 1 else tb1.id end),
(case when tb2.country = 'Scotland' then 'United Kingdom of Great Britain' else tb1.country end)
from tb2 left join
tb1
on tb1.country = tb2.country;
Преимущество этого подхода состоит в том, что запрос может использовать индексы и должен быть быстрым.