MySQL 按 2 列 2 table 排序 table

MySQL sort table by 2 columns of 2 tables

我认为这很容易,但我找不到解决方案:

我有一个非常大的 table,其中的项目有一个 "name" 列。

我有第二个 table,对应 "localized name" table 1 的一些项目。

我现在想要 table 1 按 "localized name" 从 table 2 排序,但如果不存在按 "name" 从 table 1 排序的本地化名称。

示例:

Table 1

id name
1  USA
2  Italy
3  Germany
4  Australia

Table 2

id loc_name    t1_id
1  Italia      2
2  Deutschland 3

结果

4 Australia
3 Deutschland
2 Italia
1 USA

您正在寻找 left joincoalesce():

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);