中国教程网《Photoshop专家讲堂》光盘热售参与论坛活动,快速赚取金币精品素材,中英文字体
发新话题
打印

多表关联

多表关联


我很长时间以来一直只想到了一下一种方法写sql语句。  

问题描述:有一个表(表一)中存的是人员的基础数据,字段有“code(人员编码)”、“name(人员名称)”等。在另一个表(表二)中,有几个关于人员的字段,存的都是编码,如“student”、"teacher"等。我想写一个sql语句,根据表二中的人员编码同时选出几个人员的名称,除了下面我写的还有没有更高效的方法?  

各位大虾帮帮我,谢谢!  

我写的sql:(其思想为先建立一个表,列出code,再把该表join表一,从join后的表中再选,有多少code,join多少次表一,效率太差)  
select  学生,d.name  from  (  
       select  a.name  as  学生,b.teacher  as  老师  from  表一  a  inner  join  
     表二  b  on  a.code  =  b.student  
     )  c   
inner  join  表一  d  on  c.teacher=d.code  

---------------------------------------------------------------  

SELECT  a.student,b.name  as  studname,a.teacher,c.name  as  teachername  
FROM  表二  a,表一  b,表一  c  WHERE  a.student  =  b.code  AND  a.teacher  =  c.code  
---------------------------------------------------------------  

SELECT  a.student,b.name  as  studname,a.teacher,c.name  as  teachername  
FROM  表二  a,表一  b,表一  c  WHERE  a.student  =  b.code  AND  a.teacher  =  c.code  
同一楼上的老兄所说的,我想也没有其他的更好的东西了!  
---------------------------------------------------------------  

select  t1.name  as  学生,t3.name  as  老师   
from  tab2  t2  join  tab1  t1  on  t1.code=t2.student  
                         join  tab1  t3  on  t3.code=t2.teacher

TOP

发新话题