a表字段:
ID,    Email
1,     [email protected]表字段:
ID,  a_ID(对应a表的ID字段),  xxx
1,   1,                       中国
2,   1,                       美国
3,   1,                       日本现在是希望查询出这样的结果:(b中a_ID重复的只查询出ID最小的一个)ID  Email      xxx
1   [email protected]  中国求解答,谢谢啦。

解决方案 »

  1.   

    inner join 会出来三条记录
      

  2.   

    DECLARE @ta TABLE(ID INT, Email VARCHAR(20))
    DECLARE @tb TABLE(ID INT, a_ID INT, xxx VARCHAR(20))
    INSERT INTO @ta
    SELECT 1, '[email protected]'
    INSERT INTO @tb
    SELECT 1, 1, '中国' UNION ALL
    SELECT 2, 1, '美国' UNION ALL
    SELECT 3, 1, '日本' SELECT B.ID, A.Email, B.xxx FROM @ta A LEFT JOIN @tb B ON A.id=B.a_ID WHERE NOT EXISTS (SELECT 1 FROM @tb WHERE ID < B.ID)/*
    ID Email xxx
    1 [email protected] 中国
    */
      

  3.   

    select a.id,a.Email,bb.xxx
    from a join b bb on a.id=bb.a_id 
    where not exists(select * from b where bb.a_id=id and bb.id>id)
      

  4.   

    select
     a.id,a.Email,bb.xxx
    from
     a 
    join b t on 
     a.id=t.a_id 
    where
     id=(select min(id) from b where t.a_id=id )