我有如下表:選擇3條最近的記錄,其中一列的值是不同的
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
我想要做的就是選擇3條最近的記錄(按時間倒序),其otheridentifier
s是不同的。所以在這種情況下,結果將是id
的:5,4,和2
id
= 3會被跳過,因爲有與同otheridentifier
現場更近的記錄。
這裏就是我試圖做的:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
然而,我最終得到的id
= 5行,,並而不是5,4,2符合市場預期。
有人可以告訴我爲什麼這個查詢不會返回我的預期?我試圖改變ORDER BY對於ASC但這隻會重新排列返回的行1,3,5
我記得我花了很多時間來解決這樣的SQL的時間和原來的MySQL 4.0不支持嵌套查詢,p – Unreality 2009-05-29 05:29:44
@Unreality:Fortu如果需要,大多數涉及子查詢的解決方案都可以表示爲連接。 :) – Rytmis 2009-05-29 05:32:54
是的,但具有ORDER/LIMIT的不容易通過JOIN表示... – 2009-05-29 05:41:37