通过mysql连接循环

时间:2014-01-21 22:27:17

标签: php mysql

我正在尝试制作一个带子类别的下拉菜单。

这是我的MYSQL代码

SELECT root.categoryName AS root_name, root.id AS root_id, down1.categoryName AS down1_name,
down1.id AS down1_id, down2.categoryName AS down2_name, down2.equipmentID AS down2_id
FROM category AS root
LEFT OUTER 
JOIN category AS down1 ON down1.parent_id = root.id
LEFT OUTER 
JOIN category AS down2 ON down2.parent_id = down1.id

我得到的是

Category 1 28 Sub Category 1 63 NULL NULL
Category 1 28 Sub Category 2 61 NULL NULL
Category 1 28 Sub Category 3 62 NULL NULL

Category 2 29 Sub Category 4 71 NULL NULL
Category 2 29 Sub Category 5 70 NULL NULL

Category 3 27 Sub Category 6 30 Product 1 33
Category 3 27 Sub Category 6 30 Product 2 54

我想要的是:

-Category 1 (id)
    -Sub Category 1 (id)
    -Sub Category 2 (id)
    -Sub Category 3 (id)

-Category 2 (id)
    -Sub Category 4 (id)
    -Sub Category 5 (id)
    -Sub Category 6 (id)

-Category 3 (id)
    -Sub Category 7 (id)
        -Product 1 (id)
        -Product 2 (id)
    -Sub Category 2 (id)
    -Sub Category 3 (id)

1 个答案:

答案 0 :(得分:0)

您无法在一个查询中获取多维数据。你可以:

  1. 编写一个查询,获取所有数据,然后处理它以构建正确的结构。看起来这就是你开始做的事情。您可以在查询后处理数据,以构建您想要的方式。
  2. 进行多次查询。一个用于第一级数据(类别),然后用于每个子类别。这更容易编写,但效率不高,因为您最终会进行大量的SQL查询。