我有两个表是完全不同的字段和数据,但我想从两个表中排序的数据。为此我使用了union子句,并且我成功地获取结果集但无法对数据进行排序。我尝试了很多技巧,但都失败了。排序在mysql中的两个表的联合结果集
我查询 -
(SELECT amount FROM `purchase` order by amount desc limit 0, 10)
UNION
(SELECT total_price as amount from `item` order by total_price desc limit 0, 10) order by amount desc
结果是 -
-----------
amount
-----------
9999.000
9998.000
999.000
9730
7750
7700
7600
6881
20000
13400
10250
10000
结果是确定的,但你可以看到,数据不排序量,它是由表排序。但是我想在最高处即20000等等。任何人都可以告诉我在查询中必须做什么更改才能达到结果。
在此之前,请你解释我。这里+ 0在做什么以及它如何影响我的数据? @ InoS Heo – 2014-10-06 07:09:36
@ThePlusProgrammer这是在MySQL(或PHP)中不强制严格数据类型的常见技巧。使用'CAST()'函数是转换数据类型的标准方法。 – 2014-10-06 07:13:11
amount是varchar类型,total_price是int型 – 2014-10-06 07:13:33