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
Rediger:
Forresten, hvis du er nysgerrig efter, hvorfor din oprindelige forespørgsel ikke virkede, så lad os nedbryde brikkerne:
- vælg nogle ting fra
my_table
... - hvor
user_2
=22 - og
timestamp
=(en vis værdi, lad os lægge det til side for nu) - grænse 1
Nu vender vi tilbage til det timestamp
værdi, kommer det fra din underforespørgsel:
SELECT MAX( timestamp ) FROM my_table
Bemærk, at denne underforespørgsel ikke begrænser nogen rækker baseret på user_2
-- den spørger efter, hvad der er maks. tidsstemplet i hele tabellen . Det maksimale tidsstempel er det første i din tabel ovenfor:(user_1 =23, user_2 =25, timestamp =2012-08-10 22:00:00).
Så lad os sætte det tilbage til forespørgslen på øverste niveau:
- vælg nogle ting fra
my_table
... - hvor bruger_2 =22
- og tidsstempel =2012-08-10 22:00:00
- grænse 1
... og du kan se, at der ikke er sådan en række.