首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过父类别id获取父类别

问通过父类别id获取父类别
EN

Stack Overflow用户
提问于 2020-08-17 16:06:01
回答 2查看 479关注 0票数 0

我有以下类别数据库结构

代码语言:javascript
复制
+----+---------------+-----------+
| id | category_name | parent_id |
+----+---------------+-----------+
| 1  | Category One  | 0         |
| 2  | Category Two  | 1         |
| 3  | Category Three| 1         |
| 4  | Category Four | 1         |
| 5  | Category Five | 1         |
| 6  | Category Six  | 1         |
+----+---------------+-----------+

我有一些变量包含一个子id,例如parent_id =1的category_id =4

我想得到所有的父子类别,包括它自己4

我没有家长ID,只有我需要的parent_category的category_id

到目前为止,我所做的

代码语言:javascript
复制
SELECT child.*
FROM `ec_categories` AS `child`
LEFT JOIN `ec_categories` AS `parent` ON `child`.`parent_id`=`parent`.`id`
WHERE `child`.`id` = '4'

有没有一种方法可以使用1个查询来获取它们?

EN

回答 2

Stack Overflow用户

发布于 2020-08-17 16:33:05

假设您有以下架构:

代码语言:javascript
复制
CREATE TABLE categories (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    name varchar(25) NOT NULL, 
    parent_id INT
);
    
INSERT INTO categories (name, parent_id)
VALUES
    ('Cat 1', 0),
    ('Cat 2', 1),
    ('Cat 3', 1),
    ('Cat 4', 2),
    ('Cat 5', 3);

然后,您可以使用recursive common table expression

代码语言:javascript
复制
WITH RECURSIVE parents AS
  ( SELECT id, name, parent_id
    FROM categories
    WHERE id = 4 -- 4 as an example here
    UNION ALL
    SELECT c.id, c.name, c.parent_id
    FROM categories c
    JOIN parents p
    ON p.parent_id = c.id
  ) 
  
SELECT * FROM parents;

结果:

代码语言:javascript
复制
+----+-------+-----------+
| id | name  | parent_id |
+----+-------+-----------+
|  4 | Cat 4 |         2 |
|  2 | Cat 2 |         1 |
|  1 | Cat 1 |         0 |
+----+-------+-----------+

您需要一个最新版本的MariaDB/MySql

票数 1
EN

Stack Overflow用户

发布于 2020-08-17 16:25:03

如果您在内部查询方面没有问题,那么可以使用

代码语言:javascript
复制
SELECT * FROM categories where parent_id=(SELECT parent_id FROM categories where id=4);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63446913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档