如何从php mysql中获取父级名称

如何从php mysql中获取父级名称,php,mysql,Php,Mysql,我有一个样本数据: table(id, parent_id, name) 1| 0| Apple 2| 1| Iphone 3| 1| Ipad 4| 1| Macbook 和mysql: SELECT * FROM `table` AS brand WHERE brand.parent_id = brand.id 但结果为空,如何修复此查询您必须执行自连接: SELECT a.*, b.name AS parent_n

我有一个样本数据:

table(id, parent_id, name)
       1| 0| Apple
       2| 1| Iphone
       3| 1| Ipad
       4| 1| Macbook
和mysql:

SELECT *
FROM `table` AS brand
WHERE brand.parent_id = brand.id

但结果为空,如何修复此查询

您必须执行自连接:

SELECT
    a.*,
    b.name AS parent_name
FROM
    tbl a
LEFT JOIN
    tbl b ON a.parent_id = b.id
结果集将类似于:

id  |  parent_id  |    name       |    parent_name
--------------------------------------------------
1   |  0          |    Apple      |    NULL
2   |  1          |    Iphone     |    Apple
3   |  1          |    Ipad       |    Apple
4   |  1          |    Macbook    |    Apple

您试图从查询中获取什么作为输出?您需要指定
brand.id
。仅供参考:
其中brand.parent\u id=brand\u id
将尝试检索
id
parent\u id
相同的行。让某些东西成为自己的父母是没有意义的,是吗!?相反,您必须像我的回答中所示,将表自联接到自身上。您的查询是检查是否有两个ID相等的行。在你的例子中没有。您可能需要下面建议的自联接。