用户表
用户ID  用户名
a        张三
b        李四制作表
项目  制作人  跟单人
1     a       b
2     b      a
以上两个个,我想查询出制作表中制作人和跟单人名子同时显示出来
如:
项目  制作人  跟单人
1    张三    李四SQL语句要怎么写啊

解决方案 »

  1.   

    select a.项目,b.用户名 as 制作人,c.用户名 as 跟单人
    from 制用表 a 
      join 用户表 b on a.制作人=b.用户ID 
      join 用户表 c on a.跟单人=c.用户ID
      

  2.   

    select
      a.项目,
      b.制作人,
      c.跟单人
    from 制作表 a
    left join 用户表 b on b.用户名=a.制作人
    left join 用户表 c on c.用户名=a.跟单人
      

  3.   

    declare @U table(id varchar(10),name varchar(10))
    declare @C table(id int,CName varchar(10),GName varchar(10))
    insert @U values('a','张三')
    insert @U values('b','李四')insert @C values(1,'a','b')
    insert @C values(2,'b','a')select b.id as 项目,(select name from @U where id =b.CName) as 制作人,
    (select name from @U where id =b.GName) as 跟单人 from @C b 
    /*
    项目          制作人        跟单人
    ----------- ---------- ----------
    1           张三         李四
    2           李四         张三*/
      

  4.   

    SELECT aa_1.b, dbo.aa.b AS Expr2
    FROM dbo.aa RIGHT OUTER JOIN
          dbo.bb ON dbo.aa.a = dbo.bb.a LEFT OUTER JOIN
          dbo.aa aa_1 ON dbo.bb.b = aa_1.a
      

  5.   


    -->再来一种方式
    declare @a table (用户ID varchar(10), 用户名 varchar(10))
    insert @a select 'a','张三' 
    union all select 'b','李四'declare @b table (项目 int,制作人 varchar(10), 跟单人 varchar(10)) 
    insert @b select 1,'a','b'
    union all select 2,'b','a'select
      b.项目,
      制作人=(select 用户名 from @a where 用户ID=b.制作人),
      跟单人=(select 用户名 from @a where 用户ID=b.跟单人)
    from @b b项目          制作人        跟单人        
    ----------- ---------- ---------- 
    1           张三         李四
    2           李四         张三(所影响的行数为 2 行)