mysql - 如何从 child id中获取所有 parent

标签 mysql sql

我创建了一个名为“net”的表并像这样插入了值。

id      name            parent
--------------------------------------
    1   fruits          0
    2   Apple           1
    3   Orange          1
    4   Grape           2
    5   Green Apple     2
    6   Red Apple       4

我想要得到 child “6”的所有 parent 。请帮助我

我期望的结果,当过滤数据时,id=6,它将生成我期望的结果。

lv1         lv2             lv3
--------------------------------------
4             2               1

或者像这样

       id   name           parent
--------------------------------------
        4   Grape           2
        2   Apple           1
        1   fruits          0

最佳答案

你可以使用这个:

SELECT T2.id, T2.name, T2.parent
FROM (
    SELECT
        @r AS _id,
        (SELECT @r := parent FROM table1 WHERE id = _id) AS parent,
        @l := @l + 1 AS lvl
    FROM
        (SELECT @r := 6, @l := 0) vars,
        table1 h
    WHERE @r <> 0) T1
JOIN table1 T2
ON T1._id = T2.id 
where T2.id<>6
ORDER BY T1.lvl

SQL HERE

关于mysql - 如何从 child id中获取所有 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47160183/

相关文章:

sql - Sequelize 不使用模型中的字段别名

java - 优化循环更新请求

php - 从子查询进行查询

php - 我可以让这三个 SQL 查询只适合一个吗?

c# - 如何使用 C# 将数据库中的所有表所有记录导出为 json

mysql - WordPress 获取值之间的最大帖子元

mysql - 将行转换为列 - 一张表

mysql - 在mysql表中存储和查询json

php - MySQL 将 DateTime(存储一个 UTC_TIMESTAMP)转换为秒数 1970

java - 为什么查询无法被识别?