如何使用具有父子关系的mysql从表中检索数据?

时间:2014-08-05 10:49:30

标签: php mysql

我有一个包含3行的表,如cat_id,cat_name,cat_parent。

我的表格如下:

-------------------------------------
|cat_id   |   cat_name   | cat_parent
-------------------------------------
| 1       |  Electronics | 0
| 2       |  mobile      | 1
| 3       |  ac          | 1
| 4       |  Furniture   | 0
| 5       |  Chair       | 4

我想使用MySql单一查询选择父类及其子类。

任何帮助?

3 个答案:

答案 0 :(得分:0)

SELECT
    A.cat_id as cat_id,
    A.cat_name child_id,
    A.cat_parent as parent_id,
    B.cat_name as parent_name
FROM `cat` A
JOIN `cat` B ON 
    A.cat_parent=B.cat_id

答案 1 :(得分:0)

试试这个:

select
    a.cat_id,
    a.cat_name,
    a.cat_parent,
    b.cat_name as child
from
    table as a,
    table as b
where
    a.cat_parent = b.cat_id

答案 2 :(得分:0)

深度为2或3:

SELECT
  l0.cat_name,
  l1.cat_name,
  l3.cat_name
FROM      categories l0
JOIN      categories l1 ON l0.cat_id = l1.cat_parent
LEFT JOIN categories l2 ON l1.cat_id = l2.cat_parent