在MySQL中查询选择父子行而不重复父行,可以通过使用递归查询或者使用连接查询来实现。
WITH RECURSIVE cte AS (
SELECT id, parent_id, name
FROM your_table
WHERE parent_id IS NULL -- 根节点条件
UNION ALL
SELECT t.id, t.parent_id, t.name
FROM your_table t
INNER JOIN cte ON t.parent_id = cte.id
)
SELECT *
FROM cte;
上述查询中,your_table是你的表名,id是行的唯一标识,parent_id是父行的标识,name是行的名称。通过设置递归查询的初始条件(根节点条件),可以查询到所有的父子行。
SELECT t1.id, t1.name, t2.id, t2.name
FROM your_table t1
LEFT JOIN your_table t2 ON t1.id = t2.parent_id
WHERE t1.parent_id IS NULL;
上述查询中,your_table是你的表名,id是行的唯一标识,parent_id是父行的标识,name是行的名称。通过连接表并设置条件,可以查询到所有的父子行。
以上是在MySQL中查询选择父子行而不重复父行的两种方法。根据具体的业务需求和数据结构,选择适合的方法进行查询。
领取专属 10元无门槛券
手把手带您无忧上云