如何从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相等的行。在你的例子中没有。您可能需要下面建议的自联接。