1

このようなテーブルがあります。

| path_id | ステップ| point_id | delay_time | Stand_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`

これはあまり確実に機能しないようです。

助言がありますか?

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 に答える