【发布时间】:2020-09-20 23:49:24
【问题描述】:
我正在获取 Union All 的结果,但只有 1 个查询正在运行。
select user_leftside as SId from tbl_user inner join (select @sid:=(select group_concat(user_leftside,',',user_rightside) from tbl_user where find_in_set(user_id, @nsid)) , @nsid:=@sid as fset from tbl_user, (select @nsid:='first_left_child',@sid='')v )gr on find_in_set(user_leftside,fset) where user_leftside <> ''
UNION ALL
select user_rightside as SId from tbl_user inner join (select @sid:=(select group_concat(user_leftside,',',user_rightside) from tbl_user where find_in_set(user_id, @nsid)) , @nsid:=@sid as fset from tbl_user, (select @nsid:='first_left_child',@sid='')v )gr on find_in_set(user_rightside,fset) where user_rightside <> ''
如何使用 Union All 获得结果。这是与树相关的查询
【问题讨论】:
-
单个查询单独工作正常
-
在这两个子查询中使用不同的变量名:在 MySql 查询中使用变量总是有风险的:无法保证评估的顺序。这些子查询甚至可能并行执行评估,因此您必须避免变量值从一个溢出到另一个。
-
@trincot,特别感谢您,查询运行起来就像一个魅力。我如何将您的评论标记为解决方案。 ?
-
我将其发布为答案。现在你可以勾选它了 ;-)
标签: mysql tree binary-tree union-all