gpt4 book ai didi

带有 parent_id 的 MySQL 类别 - SELF Join

转载 作者:行者123 更新时间:2023-12-01 00:43:04 25 4
gpt4 key购买 nike

我名为 categories 的 SQL 表具有以下结构:

CREATE TABLE categories(
id int NOT NULL AUTO_INCREMENT,
parent_id int,
name varchar(50),
PRIMARY KEY(id)
);

我想知道是否可以加入同一张表并提供 parent_id 名称。我可以通过 PHP 代码执行此操作,但由于性能问题,我希望以 SQL 查询的形式进行检索。

See example at SQLFiddle

我已经成功地加入了表格,但不知何故值不正确。例如,SQLFiddle 检索的结果:

    ID |    Name     | Parent Category Name
-----------------------------------
1 Meats Steaks

哪个是错的,应该是:

    ID |    Name     | Parent Category Name
-----------------------------------
3 Steaks Meats

最佳答案

使用 INNER JOIN 而不是 LEFT JOIN 并且您必须加入等于 parent_idid另一张 table 是这样的:

SELECT     c.id, c.name, parents.name AS `Parent Category Name`
FROM categories AS c
INNER JOIN categories AS parents ON parents.id = c.parent_id
ORDER BY c.name ASC;

这会给你:

| ID |   NAME | PARENT CATEGORY NAME |
|----|--------|----------------------|
| 3 | Steaks | Meats |

如果您想包含那些没有父级的类别,请使用 LEFT JOIN 而不是 INNER JOIN

关于带有 parent_id 的 MySQL 类别 - SELF Join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27039740/

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