现有2个表
表一
   部门表
int       deptID
string    deptName表二
  人员表
int      renId
string    name
int       oldDeptID
int       newDeptID
现在我想显示
姓名   旧部门名   新部门名
这个sql语句怎么写哦

解决方案 »

  1.   

    select name,olddept = b.deptname,newdept=c.deptname
    from 人员表 a
    left join 部门表 b on a.oldeptid = b.deptid
    left join 部门表 c on a.oldeptid = c.deptid
      

  2.   

    select 
      a.name as 姓名,
      b.deptName as 旧部门名,
      c.deptName as 新部门名
    from  人员表 a
    left join  部门表 b on a.oldDeptID=b.deptID 
    left join  部门表 c on a.newDeptID=c.deptID 
      

  3.   

    select a.name,
       ,b1.deptName  as oldname
       ,b2.deptName  as newname
    from 人员表 a
    left join 部门表 b1 on b1.deptID=a.olddeptID
    left join 部门表 b2 on b2.deptID=a.newdeptID
      

  4.   

    select NAME,NEWDEPT,OLDDEPT from 
    (select NAME,b.deptName NEWDEPT from 人员表 a join 部门表 b on a.NEWDEPTID=b.DEPTID) m
    join
    (select NAME,b.deptName OLDDEPT from 人员表 a join 部门表 b on a.OLDDEPTID=b.DEPTID) n
    on m.NAME=n.NAME
      

  5.   

    SELECT NAME 姓名,
    (SELECT Departname FROM 表一 WHERE deptID = oldDeptID)  旧部门名,
    (SELECT Departname FROM 表一 WHERE deptID = newDeptID)  新部门名
    FROM 表二
      

  6.   

    select name,olddept = b.deptname,newdept=c.deptname
    from 人员表 a
    left join 部门表 b on a.oldeptid = b.deptid
    left join 部门表 c on a.oldeptid = c.deptid