如何用Union All修正结果

问题描述 投票:-1回答:1

我正在获取Union All的结果,但只有一个查询在运行。

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 tree binary-tree union-all
1个回答
1
投票

在这两个子查询里面使用不同的变量名。

在MySQL查询中使用变量总是有风险的:评估的顺序不能保证。这些子查询甚至可能会并行执行评估,因此你必须避免变量值从一个子查询溢出到另一个子查询。

© www.soinside.com 2019 - 2024. All rights reserved.