select max(A.usernam),A.userid,max(B.useritem) from A inner join B where A.userid=B.userid 
group by userid

解决方案 »

  1.   

    A 表select username, userid,
    (select top 1 useritem from tabB where userid=A.userid) as useritem
    from tabA A
      

  2.   

    select top 1 A.usernam,A.userid,B.useritem top 1 from A inner join B on A.userid=B.userid 
    我不晓得是不是这个意思!!
      

  3.   

    select username,a.userid,min(useritem) as useritem
    from A join B on a.userid=b.userid
    group by a.username,a.userid
      

  4.   

    数据库是选出来了,但怎么填充到dataset后 有点问题......
      

  5.   

    条件有变化 B表还要
    useritem userid itemnum
     CCC        1     10
     BBB        1     20
    我要把itemnum 也选出来,那么max  min函数都不能用的........
      

  6.   

    --B表有没有主键(与userid可以构成复合主键就可以了)? 有主键可以这样处理select a.userid,a.username,b.*
    from A表 a join(
      select a.* from B表 a join(
        select userid,主键=min(主键) from B表 group by userid
      )b on a.userid=b.userid and a.主键=b.主键
    )b on a.userid=b.userid
      

  7.   

    --如果没有的话,用临时表:
    select id=identity(int,1,1),* into #t from B表select a.userid,a.username,b.*
    from A表 a join(
      select a.* from #t a join(
        select id=min(id) from #t group by userid
      )b on a.d=b.id
    )b on a.userid=b.useriddrop table #t
      

  8.   

    zjcxc(: 邹建 :)  你太强了,不过这样选会不会很耗资源阿,当那个库大了以后
      

  9.   

    如果你的表中有主键的话,不存在这个问题,join应该已经是最优的方案.如果你的表中没有主键,要用临时表的方案,那肯定会很耗资源.
    所以,如果表B没有主键的话,建议在表B中增加一个标识字段做主键