私はメッセージング システムをコーディングしています。昇順で送信された最後の 10 件のメッセージを選択しようとしています (一番下が最新)。
ただし、これを行うには問題があります:(
これは私の現在の SELECT ステートメントで、テーブルに 30 行以上あります。
SELECT * FROM
( SELECT * FROM messages ORDER BY addedDate DESC LIMIT 10 ) tb
WHERE ( senderID = "1" OR receiverID = "1" )
AND ( senderID = "3" OR receiverID = "3" )
ORDER BY addedDate ASC LIMIT 10
ただし、何らかの理由で、送信者と受信者の異なる組み合わせを使用すると、7行未満の結果が得られますが、それぞれが少なくとも10行を取得する必要があります。
一致する下位10行を取得するために使用できる別の方法はありますか:
WHERE ( senderID = "1" OR receiverID = "1" )
AND ( senderID = "3" OR receiverID = "3" )
ただし、昇順で下位 10 を選択します。