gpt4 book ai didi

mysql - 使用 mysql 中的单个查询获取子类别的父名称

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

我有一个名为“category”的 mysql 表。基本结构看起来像这样-

------     --------     ------
cat_id cat_name parent
------ -------- ------
1 test1 NULL
2 test2 NULL
3 test3 2
4 test4 1
5 test5 3

现在我想要在单个查询中包含父类别名称(不仅是 id)的所有类别数据。那可能吗?我可以通过在 while 循环中使用第二个查询(获取 child 的 parent 姓名)并将数据作为一个整体合并来实现。但是是否可以通过单个查询来做到这一点?

最佳答案

将表与自身连接,使用 parent 列链接到父级的 cat_id。

SELECT c1.cat_id as childID, c1.cat_name ChildName, c2.cat_name as ParentName
from category c1
LEFT OUTER JOIN category c2
ON c1.parent = c2.cat_id
  • 注意:因为有些元素没有父元素(NULL),所以我放了一个 LEFT
    OUTER JOIN
    所以这些行也会显示。如果你不想那,使用 JOIN 而不是 LEFT OUTER JOIN
  • 您也可以显示线条,但显示其他内容(空的或text or ...) 而不是 NULL 使用 COALESCE
  • 您可以将结果视为一个(大)新表,因此您可以像往常一样添加 WHERE 子句,例如过滤父名称:WHERE c2.cat_name = 'test2'

关于mysql - 使用 mysql 中的单个查询获取子类别的父名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10427241/

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