一个表 用户表
users
id  , nickname,pic另一个表 
log 
userid1,userid2,userid3
1         2      3我现在取数据  想把两个表联合起来,想要下面这样的效果
userid1 1的nickname  1的pic    userid2  2的nickname  2的pic  userid3  3的nickname  3的pic   请问该怎么查啊?

解决方案 »

  1.   

    有的users 的 userid

    log 的
    userid1,2,3 是联系的。多连。。呵呵。
      

  2.   

    select nickname,pic from users inner join [log] as l on (users.id=l.userid1)
    union all select nickname,pic from users inner join [log] as l on (users.id=l.userid2)
    union all select nickname,pic from users inner join [log] as l on (users.id=l.userid3)
      

  3.   


    假如我log表有100行数据呢。??
      

  4.   

    给你几个例子参考一下吧
    内联SELECT e.[EmpName],D.[DepartName], [PaymentBase], [PensionBase], [FertilityBase], [MedicalBase] FROM [Crm_WagePaymentBase] w INNER JOIN [Crm_Employee] e on e.EmpId=w.EmpID INNER JOIN Crm_Depart D ON D.DepartId=e.DepartId 左外联SELECT w.EmpId,e.[EmpName],D.[DepartName],w.[BaseID],w.[PaymentBase], w.[PensionBase], w.[FertilityBase], w.[MedicalBase] FROM [Crm_WagePaymentBase] w  LEFT outer JOIN [Crm_Employee] e on e.EmpId=w.EmpID LEFT outer JOIN Crm_Depart D ON D.DepartId=w.DepartId
      

  5.   

    create table #users(id int,nickname nvarchar(20),pic nvarchar(100))
    insert into #users
    select 1,'name1','pic1' union all
    select 2,'name1','pic1' union all
    select 3,'name1','pic1'create table #log(userid1 int,userid2 int,userid3 int)
    insert into #log
    select 1,2,3 union all
    select 1,2,3 union all
    select 1,2,3select a.userid1,a.userid2,a.userid3,b.nickname as nickname1,b.pic as pic1,c.nickname as nickname2,c.pic as pic2,d.nickname as nickname3,d.pic as pic3 from #log a join #users b on a.userid1=b.id
    join #users c on a.userid2=c.id join #users d on a.userid3=d.id/*
    userid1 userid2 userid3 nickname1 pic1 nickname2 pic2 nickname3 pic3
    1 2 3 name1 pic1 name1 pic1 name1 pic1
    1 2 3 name1 pic1 name1 pic1 name1 pic1
    1 2 3 name1 pic1 name1 pic1 name1 pic1
    */
      

  6.   

    create table #users(id int,nickname nvarchar(20),pic nvarchar(100))
    insert into #users
    select 1,'name1','pic1' union all
    select 2,'name2','pic2' union all
    select 3,'name3','pic3'create table #log(userid1 int,userid2 int,userid3 int)
    insert into #log
    select 1,2,3 union all
    select 1,2,3 union all
    select 1,2,3select a.userid1,a.userid2,a.userid3,b.nickname as nickname1,b.pic as pic1,c.nickname as nickname2,c.pic as pic2,d.nickname as nickname3,d.pic as pic3 from #log a join #users b on a.userid1=b.id
    join #users c on a.userid2=c.id join #users d on a.userid3=d.id/*
    userid1 userid2 userid3 nickname1 pic1 nickname2 pic2 nickname3 pic3
    1 2 3 name1 pic1 name2 pic2 name3 pic3
    1 2 3 name1 pic1 name2 pic2 name3 pic3
    1 2 3 name1 pic1 name2 pic2 name3 pic3
    */