欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

一条sql?该怎么处理

更新时间: 2014-01-05 02:17:35 责任编辑: Author_N1

 

一条sql????
想要的结果:

测试数据:


--参考方法--

select a.name as '班长',b.name as '组长',c.name as '组员'
from (select * from tb where r_id=0)a
left join (select a.* from tb a inner join tb b on a.r_id=b.id where b.r_id=0)b on a.id=b.r_id
left join (
select a.*,b.r_id as new_id from tb a 
inner join (select a.* from tb a inner join tb b on a.r_id=b.id where b.r_id=0)b on a.r_id=b.id 
)c on a.id=c.new_id

--参考方法--

create table pm
(id int,name varchar(10),r_id int,role varchar(10))

insert into pm
 select 1,'A',0,'班长' union all
 select 2,'B',1,'组长' union all
 select 3,'C',1,'组长' union all
 select 4,'D',2,'组员' union all
 select 5,'E',0,'班长' union all
 select 6,'F',5,'组长' union all
 select 7,'G',6,'组员' union all
 select 8,'H',6,'组员' union all
 select 9,'I',0,'班长'


select a.name '班长',b.name '组长',c.name '组员'
from (select * from pm where role='班长') a
left join (select * from pm where role='组长') b on a.id=b.r_id
left join (select * from pm where role='组员') c on b.id=c.r_id

/*
班长         组长         组员
---------- ---------- ----------
A          B          D
A          C          NULL
E          F          G
E          F          H
I          NULL       NULL

(5 row(s) affected)
*/

--参考方法--
两表左联...
--参考方法--
引用:

select a.name as '班长',b.name as '组长',c.name as '组员'
from (select * from tb where r_id=0)a
left join (select a.* from tb a inner join tb b on a.r_id=b.id where b.r_id=0)b on a.id=b.r_id
left join (
select a.*,b.r_id as new_id from tb a 
inner join (select a.* from tb a inner join tb b on a.r_id=b.id where b.r_id=0)b on a.r_id=b.id 
)c on a.id=c.new_id

select a.name as '班长',b.name as '组长',c.name as '组员'
from (select * from cs where r_id=0)a
left join (select a.* from cs a inner join cs b on a.r_id=b.id where b.r_id=0)b on a.id=b.r_id
left join (
    select a.*,b.r_id as new_id from cs a 
    inner join (select b.* from cs b inner join cs c on b.r_id=c.id where c.r_id=0)b on a.r_id=b.id 
    )c on b.id=c.r_id
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:17:35
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8092/
本文WWW.DOC100.NET DOC100.NET版权所有。