java开发中,sql有2个表,得到一个2维数组,类似于tree
tab1countgididtext1200001默认分组2200002默认分组3250001默认分组根据gid得到id(id代表多少组)--20000就有2个分组tab...
tab1
count gid id text
1 20000 1 默认分组
2 20000 2 默认分组
3 25000 1 默认分组
根据gid 得到id(id代表多少组)--20000 就有2个分组
tab2
count gid id text
1 20000 1 20000
2 20000 2 20001
3 25000 1 25000
根据gid和id 来找到text
希望得到:
-20000
------默认分组1
-------------20000
------默认分组2
-------------20001
求大神指教该怎么做,sql语句怎么写 展开
count gid id text
1 20000 1 默认分组
2 20000 2 默认分组
3 25000 1 默认分组
根据gid 得到id(id代表多少组)--20000 就有2个分组
tab2
count gid id text
1 20000 1 20000
2 20000 2 20001
3 25000 1 25000
根据gid和id 来找到text
希望得到:
-20000
------默认分组1
-------------20000
------默认分组2
-------------20001
求大神指教该怎么做,sql语句怎么写 展开
1个回答
展开全部
写了个,不知道是不是你需要的。。
思路是这样的:先查最大的分组,再查二级,再查三级,根据id来定义二级和三级的parent_id。
select
DISTINCT gid as id,
null as parent_id,
gid as text
FROM tab1
UNION
select
CONCAT(t1.gid,'_',t1.id) as ID,
t1.gid as parent_id,
CONCAT(t1.text,t1.id) as text
FROM tab1 t1
UNION
SELECT
CONCAT(t2.gid,'__',t2.id) as ID,
CONCAT(t2.gid,'_',t2.id) as parent_id,
t2.text as text
FROM
tab2 t2
思路是这样的:先查最大的分组,再查二级,再查三级,根据id来定义二级和三级的parent_id。
select
DISTINCT gid as id,
null as parent_id,
gid as text
FROM tab1
UNION
select
CONCAT(t1.gid,'_',t1.id) as ID,
t1.gid as parent_id,
CONCAT(t1.text,t1.id) as text
FROM tab1 t1
UNION
SELECT
CONCAT(t2.gid,'__',t2.id) as ID,
CONCAT(t2.gid,'_',t2.id) as parent_id,
t2.text as text
FROM
tab2 t2
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询