我正在获取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查询中使用变量总是有风险的:评估的顺序不能保证。这些子查询甚至可能会并行执行评估,因此你必须避免变量值从一个子查询溢出到另一个子查询。