次の表があります。
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
otheridentifier
私がやりたいことは、 s が異なる3 つの最新のレコード (時刻の説明による) を選択することです。したがって、この場合、結果はid
's: 5、4、および 2 になります。
id
otheridentifier
= 3 は、同じフィールドを持つより新しいレコードがあるためスキップされます。
これが私がやろうとしたことです:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
ただし、期待どおりに 5、4、2 ではなくid
= 5、3、および1の行を取得することになります。
このクエリが私が期待したものを返さない理由を誰か教えてもらえますか? ORDER BY を ASC に変更しようとしましたが、返された行が 1、3、5 に再配置されるだけです。