Mysql 选择值大于当前字段值的所有字段

Mysql 选择值大于当前字段值的所有字段,mysql,mysql5,Mysql,Mysql5,我有一张像这样的桌子 |路径| id |步骤|点| id |延迟|时间|待机|访问| |202 | 1 | 111 | 0 | 0 | 7| 它按步骤顺序列出了点id。 例如:111-步骤1、181-步骤2等 我需要编写一个查询,该查询将采用point_id,选择所有路径id中具有给定值且步长较高的所有值,并返回一组point_id 我目前正在使用此查询 SELECT DISTINCT `pdb`.`point_id` AS `id` FROM `path_detail` AS `pda` I

我有一张像这样的桌子

|路径| id |步骤|点| id |延迟|时间|待机|访问|

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

它按步骤顺序列出了点id。 例如:111-步骤1、181-步骤2等


我需要编写一个查询,该查询将采用point_id,选择所有路径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`
选择不同的'pdb'。'point_id'作为'id'
从'path_detail'作为'pda'内部联接
`path_detail`AS`pdb`ON pda.path_id=pdb.path_id
和pda.step
这似乎不太可靠

有什么建议吗?

试试:

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
选择不同的'pdb'。'point_id'作为'id'
从'path_detail'作为'pda','path_detail'作为'pdb'
哪里
pda.point_id=111
和pda.path_id=pdb.path_id
和pda.step
“我需要编写一个以点id为对象的查询,选择具有给定值的所有路径id中具有较高步长的所有值,并返回一组点id。”错误。。。什么你能用一个工作过的例子来演示吗?你说它工作不可靠是什么意思?您能为这两个表显示模式吗?你能展示一下你想看到的样本输出吗?等等,我会详细说明的。假设我传递了一个路径id 202内的步长值为10的点id。因此,我需要从path_id为202的行中选择步骤11及以后的步骤。然后,我需要检查path_id为203、204等的行,返回一组不同的值。在一个更真实的例子中,我传递了一个城市id,希望找到交通工具到达的所有城市。就我提供的查询而言,我非常确定它每个路径id只返回一个值,而可以有多个值。DISTINCT确实应该存在,否则我将获取5000多行。看来不一样,谢谢。