用户表:UserId
        0001
        0002
用户部门关系表:
       UserId  DepId
        0001   dep001
        0001   dep002如何通过用户表Join用户部门关系表  让0001只显示一个部门信息(dep001,dep002 任意一个)

解决方案 »

  1.   


    --照你现在给的没必要join,如果要用户表还有别的字段join你自己也改的出来吧?
    select * from 用户部门关系表 a where not exists(
    select 1 from 用户部门关系表 where UserId=a.UserId and DepId<a.DepId--这里也可以是大于,随你
    )
      

  2.   

    select top (1) a.userid,b.depid from 用户表 a left join 用户部门关系表 b
     on a.userid = b.userid order by b.depid
      

  3.   

    2005+
    SELECT A.*,B.DepId
    FROM 用户表 A
    OUTER APPLY ( 
      SELECT TOP 1 DepId
      FROM 用户部门关系表
      WHERE UserId = A.UserId
      ) AS B
      

  4.   

    SELECT A.*,B.DepId
    FROM 用户表 A
    OUTER APPLY ( 
      SELECT TOP 1 DepId
      FROM 用户部门关系表
      WHERE UserId = A.UserId
      ORDER BY DepId
      ) AS B
      

  5.   

    select m.userid , min(n.depid) depid from 用户表 m, 用户部门关系表 n where m.UserId = n.UserId group by m.UserId
    select m.userid , max(n.depid) depid from 用户表 m, 用户部门关系表 n where m.UserId = n.UserId group by m.UserId
      

  6.   

    Select t1.UserID, Max(t2.depid) as depid
    From 用户表 t1, 用户部门关系表 t2
    where t1.UserID = t2.UserID
    group by t1.userid