|
|
|
| Как мне осуществить что-то наподобие WHERE MAX(stolb) ?
У меня есть некоторое количество строк. Принадлежат они разным пользователям. Мне нужно выбрать всю строку пользователя, у которого определенный столбец содержал бы максимальное значение. Понятно, что это можно сделать двумя запросами подряд. Но можно ведь и одним?
В общем-то, мне это нужно для двух случаев...в первом этот столбец - int ... во втором - datetime | |
|
|
|
|
|
|
|
для: Shorr Kan
(29.05.2006 в 11:46)
| | Только с использованием вложенных запросов - агрегатные функции не могут появляться в WHERE-условии. | |
|
|
|
|
|
|
|
для: Shorr Kan
(29.05.2006 в 11:46)
| | Версия MySQL выше 4.1?
Тогда
SELECT t.*
FROM
(SELECT max(stolb) AS val FROM tab ) AS t1
JOIN tab AS t ON t.stolb=t1.val
|
| |
|
|
|
|
|
|
|
для: Shorr Kan
(29.05.2006 в 11:46)
| | Можно одним запросом:
SELECT * FROM table WHERE user='user' ORDER BY stolb DESC LIMIT 1
|
| |
|
|
|
|
|
|
|
для: Loki
(29.05.2006 в 13:08)
| | Фиг.
А если там несколько одинаковых максимальных? | |
|
|
|
|
|
|
|
для: Trianon
(29.05.2006 в 13:12)
| | если несколько, тогда не прокатит. | |
|
|
|