MySQL按2列2表对表进行排序
我认为这很容易,但我没有找到解决办法: 我有一个非常大的表,其中的项有一个名称列 我有第二个表,表1中的一些项具有相应的本地化名称 我现在希望表1按表2中的本地化名称排序,但如果不存在本地化名称,则按表1中的名称排序 例如: 表1MySQL按2列2表对表进行排序,mysql,sql,sql-order-by,Mysql,Sql,Sql Order By,我认为这很容易,但我没有找到解决办法: 我有一个非常大的表,其中的项有一个名称列 我有第二个表,表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 Deutschla
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
您正在寻找左连接和合并:
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);