Я думал, что это будет легко, но я не нахожу решения:
У меня очень большая таблица с элементами, которые имеют столбец "имя".
У меня есть вторая таблица с соответствующим "локализованным именем" для некоторых элементов таблицы 1.
Теперь я хочу, чтобы таблица 1 упорядочивалась "локализованным именем" из таблицы 2, но если локализованное имя не было упорядочено по "имени" из таблицы 1.
Пример:
Таблица 1
id name
1 USA
2 Italy
3 Germany
4 Australia
Таблица 2
id loc_name t1_id
1 Italia 2
2 Deutschland 3
Результат
4 Australia
3 Deutschland
2 Italia
1 USA
Вы ищете left join
и coalesce()
:
select t1.*, coalesce(t2.loc_name, t1.name) as real_name
from t1 left join
t2
on t1.id = t2.ti_id
order by coalesce(t2.loc_name, t1.name);