Таблица сортировки MySQL по 2 столбцам из 2 таблиц

0

Я думал, что это будет легко, но я не нахожу решения:

У меня очень большая таблица с элементами, которые имеют столбец "имя".

У меня есть вторая таблица с соответствующим "локализованным именем" для некоторых элементов таблицы 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
Теги:
sql-order-by

1 ответ

1
Лучший ответ

Вы ищете 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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню