如何使用排序结果作为另一个MySQL语法的“ORDER BY”基础?

时间:2016-08-22 05:15:30

标签: php mysql database

如何将排序结果用作另一个MySQL语法的ORDER BY基础?

例如,

我查询了“记录'重复次数”的顺序,记录的列名为country。 SQL语法如下所示:

   SELECT country, count( * ) AS count

   FROM table1

   GROUP BY country

   ORDER BY count DESC

结果如下:




国计数

======================

美国 13679

英国 8060

德国 6245

俄罗斯联邦 6076

加拿大 3388

荷兰 4580




但现在我想列出另一个数据表,其中country_to_live列按上面的结果排序。语法如下所示:

SELECT name,age,salary FROM table2 ORDER BY (country_to_live ...)

表2可能如下所示:




名年龄薪水country_to_live

=============================================== =============

John 25 4000美国

Merry 27 3500美国

比尔26 4200德国

珍26个5000荷兰

阿贝尔34 4700加拿大

Leo 31 3400俄罗斯联邦

Karen 23 7100英国

西特35 5600加拿大




我想要的结果是:


名年龄薪水country_to_live

=============================================== =============

John 25 4000 美国

Merry 27 3500 美国

Karen 23 7100 英国

比尔26 4200的德国

Leo 31 3400 俄罗斯联邦

阿贝尔34 4700的加拿大

西特35 5600的加拿大

珍26 5000的荷兰


那么(country_to_live ...)是什么?

1 个答案:

答案 0 :(得分:0)

count结果查询jointable2 ordercount结果SELECT t2.name, t2.age, t2.salary, t2.country_to_live FROM table2 AS t2 LEFT JOIN ( SELECT country, COUNT(*) AS country_count FROM table1 GROUP BY country ) AS t1 ON t2.country_to_live = t1.country ORDER BY t1.country_count DESC, t2.name ASC; 一起使用。

示例

nvarchar