SELECT * FROM my_table -- standard stuff
WHERE user_2 = 22 -- predicate
ORDER BY timestamp DESC -- this means highest number (most recent) first
LIMIT 1; -- just want the first row
Sunting:
Omong-omong, jika Anda penasaran mengapa kueri asli Anda tidak berfungsi, mari kita uraikan bagian-bagiannya:
- pilih beberapa item dari
my_table
... - di mana
user_2
=22 - dan
timestamp
=(beberapa nilai, mari kita kesampingkan untuk saat ini) - batas 1
Sekarang, kembali ke timestamp
itu nilai, itu berasal dari subquery Anda:
SELECT MAX( timestamp ) FROM my_table
Perhatikan bahwa subkueri ini tidak membatasi baris apa pun berdasarkan user_2
-- ia menanyakan berapa stempel waktu maksimum di seluruh tabel . Stempel waktu maksimum tersebut adalah yang pertama dalam tabel Anda di atas:(pengguna_1 =23, pengguna_2 =25, stempel waktu =10-08-2012 22:00:00).
Jadi, mari sambungkan kembali ke kueri tingkat atas:
- pilih beberapa item dari
my_table
... - di mana pengguna_2 =22
- dan stempel waktu =10-08-2012 22:00:00
- batas 1
... dan Anda dapat melihat bahwa tidak ada baris seperti itu.