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 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);
我认为这很容易,但我找不到解决方案:
我有一个非常大的 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 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);