Выбор всех полей со значениями, превышающими текущее значение поля

У меня есть таблица, которая выглядит следующим образом.

| путь_идентификатор | шаг | point_id | delay_time | время ожидания | доступ |

| 202 | 1 | 111 | 0 | 0 | 7 |

Который перечисляет point_id в порядке шагов. Например: 111 - шаг 1, 181 - шаг 2 и т. Д.

Мне нужно написать запрос, который будет принимать point_id, выбрать ВСЕ значения, которые имеют более высокий шаг среди ВСЕГО path_id, которые имеют данное значение, и вернуть сгруппированный набор point_id.

Я сейчас использую этот запрос

SELECT DISTINCT `pdb`.`point_id` AS `id` 
FROM `path_detail` AS `pda` INNER JOIN 
`path_detail` AS `pdb` ON pda.path_id = pdb.path_id 
 AND pda.step < pdb.step
WHERE 
(pda.point_id = 111) 
GROUP BY `pdb`.`path_id`

Который, кажется, не работает слишком надежно.

Какие-либо предложения?

1 ответ

Решение

Пытаться:

SELECT Distinct `pdb`.`point_id` AS `id` 
FROM `path_detail` AS `pda`, `path_detail` AS `pdb`  
WHERE 
pda.point_id = 111
AND pda.path_id = pdb.path_id 
AND pda.step < pdb.step
Order by `pdb`.`point_id` ASC
Другие вопросы по тегам