gpt4 book ai didi

mysql - 如何编写mysql查询来获取想要的数据?

转载 作者:行者123 更新时间:2023-11-29 12:23:17 25 4
gpt4 key购买 nike

我有这样的 table

id seq is_child type
a 0 0 1
b 1 0 1
c 2 0 1
d 3 0 1
e 4 0 2
f 0 1 1
g 1 1 1
h 2 1 1
i 5 0 1
j 6 0 1

它有四列 Id、sequence 和 is_child 列和类型。

父级和子级存储在同一个表中,子级的 is_child 列值设置为 1。

对于 parent ,类型为 2。

序列从 0 开始并以 1 递增。对于子序列,再次从 0 开始并以 1 递增。

正如您在表 id e 中看到的那样,它是父级,它有三个子级,分别是 f、g、h,其序列分别为 0、1 和 2。

我们有另一个表来维护这种父子关系

parent Id   child id
e f
e g
e h

有了这些数据,我如何触发查询以获得如下所示的结果。

id  seq
a 0
b 1
c 2
d 3
f 4
g 5
h 6
i 7
j 8

所以,基本上我不希望结果中有 parent ,并且顺序应该如图所示。

请帮忙。

最佳答案

您可以使用关系表 ( http://sqlfiddle.com/#!2/2e767/7 ) 连接节点:

SET @n = -1;
SELECT t.id, @n:=@n+1 seq FROM (
SELECT DISTINCT IFNULL(c.id, p.id) id
FROM node p
LEFT JOIN relation r ON r.parent_id = p.id
LEFT JOIN node c ON c.id = r.child_id
) t;

关于mysql - 如何编写mysql查询来获取想要的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com