Групировать по максимальн-полученному значению

_Leonchik_

Новичок
Групировать по максимальн-полученному значению

помогите плиз разрулить ситуацию:

есть 2 таблицы.
tab_1(id1, name) и tab_2(id, id1, start, end)
В tab_2 имеются следующие записи:
1 1 10 NULL
2 1 5 5
3 1 2 NULL
4 1 8 6
5 1 NULL NULL
6 1 7 7

Задача вытянуть одну строку кот. :
WHERE (t2.start > t2.end AND t2.start IS NOT NULL) OR (t2.start IS NULL )
Если словами: изъять ту строку. кот t2.start > t2.end но t2.start не является пустой
или если таковых записей нет. берем ту строку, кот имеет в поле t2.start значение NULL

В предоставленной таблице на данных момет считается удовл. строкой - 1 (10 - NULL)
после данного запроса, в поле t2.end инкрементируется на одну запись.
и т.д. пока мы не добермся до строки 5 (NULL - NULL)
PHP:
SELECT t2.*
FROM `tab_1` AS t1
INNER JOIN `tab_2` AS t2  USING(id1)
WHERE (t2.start > t2.end AND t2.start IS NOT NULL)  OR (t2.start IS NULL)
GROUP BY t1.id1
В данном запросе возвращается одна любая запись, кот. t2.start > t2.end. Но нужна именно максимальное 'больше'.

-~{}~ 08.02.07 15:11:

никак не выходит. у когото есть соображения?

-~{}~ 08.02.07 15:58:

вот млин. такая банальная ситуация на первый взгляд. а ничего не выходит. Как же быть?
 

chira

Новичок
не уверен правильно ли понял задание ...
Код:
SELECT t1.*
FROM `tab_2` AS t1
WHERE t1.id = (SELECT t2.id FROM tab_2 t2 WHERE t1.id1=t2.id1 ORDER BY IFNULL(t2.start,0)- IFNULL(t2.end,0) DESC LIMIT 1)
 

_Leonchik_

Новичок
chira - Судя по запросу верно. Но снова кизяк. у меня 4.0 и походу не проходят вложенные запросы.
 

baev

‹°°¬•
Команда форума
Как-то так:
Код:
SELECT (start-end) AS delta
FROM tab_2
ORDER BY delta DESC LIMIT 1
 

_Leonchik_

Новичок
baev - в итоге получаем любую походящее под
start-end. а надо максимальное от этого выражения и одну запись для каждого t2.id1 (поле по кот. группируем)

пока тоже обхожусь LIMIT 1. но не удобно.
надо для всех записи забрать за один раз. А так приходится в цикле с лимитом.
пока обхожусь! далее посмотрим.
 

baev

‹°°¬•
Команда форума
Я показал, как без подзапроса обойтись.
Весь запрос полностью писать в мои планы не входило.
 
Сверху