多级Combox-MySQL查询
我有一个MySQL表,看起来像这样 我想创建一个如下所示的组合框:多级Combox-MySQL查询,mysql,sql,multi-level,Mysql,Sql,Multi Level,我有一个MySQL表,看起来像这样 我想创建一个如下所示的组合框: Hardware (ID 1, Parent 0) -Child (ID 2, Parent 1) -Child (ID 3, Parent 1) --Child (ID 4, Parent 3) 如您所见,主要类别的父Id为0,其余类别的Id与类别的Id关联 我想知道的是,是否有一种方法可以直接通过mysql查询做到这一点?如果,那么,你能给我举个例子吗 我在MySQL中尝试了一些循环,但在我的脑海中没有任何意义。如果您被
Hardware (ID 1, Parent 0)
-Child (ID 2, Parent 1)
-Child (ID 3, Parent 1)
--Child (ID 4, Parent 3)
如您所见,主要类别的父Id为0,其余类别的Id与类别的Id关联
我想知道的是,是否有一种方法可以直接通过mysql查询做到这一点?如果,那么,你能给我举个例子吗
我在MySQL中尝试了一些循环,但在我的脑海中没有任何意义。如果您被限制为3个级别,您可以使2个
左连接
并在一个查询中获取所有数据:
SELECT
t1.id,
TRIM(
CONCAT(
REPEAT('-',IF(t2.id IS NOT NULL,1,0) + IF(t3.id IS NOT NULL,1,0)),
' ',
t1.label
)
) AS label
FROM
mytable t1
LEFT JOIN
mytable t2 ON (t1.parent = t2.id)
LEFT JOIN
mytable t3 ON (t2.parent = t3.id)
ORDER BY
IFNULL(t3.id, IFNULL(t2.id, t1.id))
你为什么要用一个组合框来做这个?这是一项要求吗?这不是一项成就,但我认为mysql应该可以做到:9不太可能,当您需要嵌套数据集时,数据库会返回平面数据集。您可以将所有数据提取为平面数据集,然后再进行处理。。。但是在一个组合框中设置三个级别也不是很好的设计。您最好使用三个组合框,动态深入了解细节。。。