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
Upravit:
Mimochodem, v případě, že vás zajímá, proč váš původní dotaz nefungoval, pojďme si je rozebrat:
- vyberte nějaké položky z
my_table
... - kde
user_2
=22 - a
timestamp
=(nějaká hodnota, nechme ji zatím stranou) - limit 1
Nyní se vraťme k tomu timestamp
hodnota, pochází z vašeho dílčího dotazu:
SELECT MAX( timestamp ) FROM my_table
Upozorňujeme, že tento dílčí dotaz neomezuje žádné řádky založené na user_2
-- zeptá se, jaké je maximální časové razítko v celé tabulce . Toto maximální časové razítko je první ve vaší tabulce výše:(user_1 =23, user_2 =25, časové razítko =2012-08-10 22:00:00).
Pojďme to tedy připojit zpět k dotazu nejvyšší úrovně:
- vyberte nějaké položky z
my_table
... - kde uživatel_2 =22
- a časové razítko =2012-08-10 22:00:00
- limit 1
... a můžete vidět, že takový řádek neexistuje.