1

我有一张看起来像这样的桌子。

| 路径 ID | 步骤 | point_id | 延迟时间 | 待机时间 | 访问 |

| 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`

这似乎不太可靠。

有什么建议么?

4

1 回答 1

0

尝试:

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
于 2012-08-13T20:41:05.677 回答