我有一个表,其中存储了父级id的类别。以下是表结构 我需要的是让家长和在单个查询ID 4的细节,而不会PHP递归Mysql查询在单个查询中获取父级详细信息
id | CategoryName | parentid
1 Web 0
2 Software 0
3 PHP 1
4 Arrays 3
我有一个表,其中存储了父级id的类别。以下是表结构 我需要的是让家长和在单个查询ID 4的细节,而不会PHP递归Mysql查询在单个查询中获取父级详细信息
id | CategoryName | parentid
1 Web 0
2 Software 0
3 PHP 1
4 Arrays 3
自连接应足以在这里。您的目标是将自己的表加入表中,同时将主行的parentid
与其父行的id
相关联。
SELECT
me.id AS me_id,
me.CategoryName AS me_category,
parent.id AS parent_id,
parent.CategoryName AS parent_category
FROM
tablename me JOIN tablename parent ON me.parentid = parent.id
WHERE me.id = 4
+1我刚才提出的建议。 –
感谢迈克尔的回复,但问题。根据你的查询,我只能得到2个级别 –
@Anish Joseph你需要解释你的意思是什么__数量的levels_。您问题中的示例表格没有说明这一点。您显示从小孩到父母的1:1关系。 –
会的
select * from categories t1 join categories t2 where t1.parentid=t2.id
工作的你
不,所有的数据都在同一个表中,没有't1'或't2' –
@Rikudo Sennin t1和t2是别名,它是自加入。 – varela
可能重复的变化[PHP/MySQL的:检索在邻接表模型的单一路径(http://stackoverflow.com/questions/3627878/php-mysql-retrieve -a-single-path-in-the-adjacency-list-model) –
你的意思是说你想检索完整的继承链吗? 'child - > parent - > parent - > parent - > ... 0'?没有递归就无法完成。 –
雅,这是我一直在寻找..谢谢迈克尔.. –