1

子から親への完全なパスを取得するための選択クエリを次のように記述します。

| Unique Id | Child Code | Parent Code |
|     X     |     9      |     7       |
|     Y     |     7      |     6       |
|     Z     |     6      |     5       |
|     A     |     5      |    NULL     |
|     B     |     11     |     33      |
|     C     |     33     |     22      |
|     D     |     22     |    NULL     |

選択されたコードが 9 の場合、クエリはすべての親を結果として返す必要があります: 9-7-6-5....

選択されたコードが 11 の場合、クエリは 11-33-22.... を返す必要があります。

ありがとう。

4

2 に答える 2

2

このクエリを試してください

SELECT *
FROM (
    SELECT
        @r AS _id,
        (SELECT @r := parent_code FROM mytable WHERE unique_id = _id) AS parent_id,
        @l := @l + 1 AS lvl
    FROM
        (SELECT @r := 9, @l := 0) vars,
        mytable m
    WHERE @r <> 0) T1
JOIN mytable T2
ON T1._id = T2.id
ORDER BY T1.lvl DESC;
于 2013-01-04T07:44:12.303 に答える