SELECT A.ID,B.TEL FROM A LEFT JOIN B ON A.ID=B.AID 
在B表中一个AID对应多个TEL,在这我只想返回和AID对应的第一个TEL,不使用游标的情况下,怎么写这个SQL语句
我想写一SQL,从B表中得到每个AID和TEL的对应关系,TEL只取ORDER BY B.ID ASC
时对应AID的第一个,怎么写呀?

解决方案 »

  1.   

    SELECT A.ID,B.TEL FROM A LEFT JOIN B ON A.ID=B.AID and b.id=(select top 1 id from b where AID=A.ID order by id)
      

  2.   

    SELECT A.ID,T.TEL 
    FROM A 
         LEFT JOIN (select AID,Min(TEL) AS TEL from B group by AID) AS T ON A.ID=T.AID 
      

  3.   

    select A.ID,(select top 1 Tel from B where AID=T.id)
    from A as T
      

  4.   

    --子查询最简洁select A.ID,(select top 1 Tel from B where AID=T.id) as TEL
    from A as T
      

  5.   

    SELECT A.ID,B.TEL FROM A LEFT JOIN B ON A.ID=B.AID and b.id=(select top 1 id from b where AID=A.ID order by id)
      

  6.   

    select A.ID,(select top 1 Tel from B where AID=T.id) as TEL
    from A as T
    order by a.ID ASC
      

  7.   

    SELECT A.ID,B.TEL FROM A LEFT JOIN B b1 ON A.ID=B.AID 
    where not exists(select 1 from b where b1.aid = aid and b.id)
      

  8.   

    上面没写完
    SELECT A.ID,B.TEL FROM A LEFT JOIN B b1 ON A.ID=B.AID 
    where not exists(select 1 from b where b1.aid = aid and b.id > id)
      

  9.   

    mengmou()mengmou() ( ) 信誉:98  2007-08-18 14:10:33  得分: 0  
     
     
       SELECT A.ID,B.TEL FROM A LEFT JOIN B b1 ON A.ID=B.AID 
    where not exists(select 1 from b where b1.aid = aid and b.id)  
     
    ---------------------
    沒寫完吧
      

  10.   

    select a.id,b.tel
    from a left join (select aid,tel = min(tel) from b group by adi) b on a.id = b.aid