gpt4 book ai didi

mysql - 连接mysql时按父子关系排序

转载 作者:行者123 更新时间:2023-11-29 16:45:03 25 4
gpt4 key购买 nike

我有两个类别表,其结构如下

category:- Id Name
category_detail: category_Id parent_Id

日期是这样的类别

1  Laptop  
2 Mobile
3 HP
4 LG
5 Nokia
6 Sony
7 DELL
category_det
1 0
2 0
3 1
4 2
5 2
6 2
7 1

I want result like this
1 Laptop
3 HP
7 DELL
2 Mobile
4 LG
5 Nokia
6 Sony

SELECT `Id`,`Name` FROM `category`
INNER JOIN category_det ON category_det.category_Id = category.Id
COALESCE(category_det.parent_Id, category.Id), cateory.Id

但这没有按要求返回。谢谢

最佳答案

这里的技巧是确定自定义排序参数。如果parent_id值为0,我们可以简单地使用category_id值来排序;否则为 parent_id 值。这是因为其他级别的 parent_id 值与父级的 category_id 相同。

我们还将使用多级Order By,并使用category_id完成二级排序。

你可以这样做:

SELECT 
cd.category_id,
c.name
FROM
category AS c
JOIN category_detail AS cd ON c.id = cd.category_id
ORDER BY
CASE WHEN cd.parent_id = 0 THEN cd.category_id
ELSE cd.parent_id
END
, cd.category_id

关于mysql - 连接mysql时按父子关系排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53143222/

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