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
Redigera:
Förresten, om du är nyfiken på varför din ursprungliga fråga inte fungerade, låt oss dela upp bitarna:
- välj några saker från
my_table
... - där
user_2
=22 - och
timestamp
=(viss värde, låt oss lägga det åt sidan för nu) - gräns 1
Nu kommer vi tillbaka till den timestamp
värde, kommer det från din underfråga:
SELECT MAX( timestamp ) FROM my_table
Observera att den här underfrågan inte begränsar några rader baserat på user_2
-- den frågar efter vad som är maxtidsstämpeln i hela tabellen . Den maxtidsstämpeln är den första i tabellen ovan:(user_1 =23, user_2 =25, timestamp =2012-08-10 22:00:00).
Så låt oss koppla tillbaka det till frågan på översta nivån:
- välj några saker från
my_table
... - där user_2 =22
- och tidsstämpel =2012-08-10 22:00:00
- gräns 1
... och du kan se att det inte finns en sådan rad.