表A,61
62
63
64
65
66
表B
62 40
63 20
63 30
63 50想让显示结果一61       
62       40
63       20
64
65
66如果表B中有多行和表A中对应,只随便取一行就可以了,要如何解决呢?

解决方案 »

  1.   


    select *
    from a left join (select id,max(num) as num from b)c on a.id = c.id
      

  2.   

    select A.colum1,A.B.colum2 from A left join B on 
    A.colum1=B.colum1 
    如果随便取一条的话,后面+where条件查询。
      

  3.   

    对表B的第一列进行group by 一下,然后第二列取最大或是最小的值
    select a.colum1,max(a.colum2) from #bb a inner join #aa b on a.colum1 = b.colum1
    group by a.colum1
      

  4.   


    create table T7
    (
      userid  int
    )create table T8
    (
      userid int,
      score int
    )select a.userid,b.score from T7  a  left join (select userid, min(score) as score from T8 group by userid)  b on a.userid=b.userid userid
    -----------
    1
    2
    3
    4
    5
    6(6 行受影响)userid      score
    ----------- -----------
    1           34
    2           44
    1           56
    3           76
    1           45
    2           55(6 行受影响)userid      score
    ----------- -----------
    1           34
    2           44
    3           76
    4           NULL
    5           NULL
    6           NULL(6 行受影响)