Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL按2列2表对表进行排序_Mysql_Sql_Sql Order By - Fatal编程技术网

MySQL按2列2表对表进行排序

MySQL按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

我认为这很容易,但我没有找到解决办法:

我有一个非常大的表,其中的项有一个名称列

我有第二个表,表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
您正在寻找左连接和合并:

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