我试着解决这个问题超过两个小时。我需要你的帮助。我想通过这个查询从两个表中的数据进行排序:SQL ORDER BY两个条件
SELECT *
FROM (
SELECT INV.`id` , INV.`userid` , Cli.firstname, Cli.lastname, Cli.companyname, Cli.currency, INV.`total` , INV.`date` , INV.`duedate`
FROM tblinvoices AS INV, tblclients Cli
WHERE now() >= DATE_ADD(INV.duedate, INTERVAL +2
DAY)
AND INV.STATUS = 'unpaid'
AND Cli.id = INV.userid
AND INV.total >=200
AND INV.`date` != INV.`duedate`
) AS X
ORDER BY X.duedate ASC
我得到这样的结果:
id userid firstname lastname companyname currency total date duedate
3 3 younes Abakarim 1 154877.00 2014-10-18 2014-11-01
9 12 Faissal Marouan 1 2568.00 2014-10-23 2014-11-06
34 3 younes Abakarim 1 252.60 2015-01-10 2015-01-15
31 12 Faissal Marouan 1 288.00 2015-01-01 2015-01-15
36 3 younes Abakarim Bestgallery 1 288.00 2015-01-16 2015-01-19
但我想是这样的:
id userid firstname lastname companyname currency total date duedate
3 3 younes Abakarim 1 154877.00 2014-10-18 2014-11-01
34 3 younes Abakarim 1 252.60 2015-01-10 2015-01-15
36 3 younes Abakarim Bestgallery 1 288.00 2015-01-16 2015-01-19
9 12 Faissal Marouan 1 2568.00 2014-10-23 2014-11-06
31 12 Faissal Marouan 1 288.00 2015-01-01 2015-01-15
而且通过仍然排序duedate
。
-1你说你想要的数据集没有按duedate排序,这就是为什么查询不按照期望的顺序返回结果的原因,当你通过duedate排序时。 – 2015-01-21 12:26:28