我試着解決這個問題超過兩個小時。我需要你的幫助。我想通過這個查詢從兩個表中的數據進行排序: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