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
Редактиране:
Между другото, в случай, че сте любопитни защо оригиналната ви заявка не работи, нека да разбием на части:
- изберете някои неща от
my_table
... - където
user_2
=22 - и
timestamp
=(някаква стойност, нека я оставим настрана засега) - лимит 1
Сега да се върнем към това timestamp
стойност, идва от вашата подзаявка:
SELECT MAX( timestamp ) FROM my_table
Имайте предвид, че тази подзаявка не ограничава никакви редове въз основа на user_2
-- пита какво е максималното времеви печат в цялата таблица . Това максимално клеймо за време е първото във вашата таблица по-горе:(user_1 =23, user_2 =25, timestamp =2012-08-10 22:00:00).
И така, нека го включим обратно към заявката от най-високо ниво:
- изберете някои неща от
my_table
... - където потребител_2 =22
- и времева марка =2012-08-10 22:00:00
- лимит 1
... и виждате, че няма такъв ред.