A表字段有:  aid int, name varchar(20)
B表字段有:  bid int, name_id int, ports varchar(20)
B的name_id为外键关联到A表的aid,所以A/B表形成了一对多的关系。想查询的结果集包括A表中的记录,同时在B表中提取第一条跟A表记录关联的记录。这个语句该怎么写?谢谢1
如:
A表  aid   name
     1     KLK
     2     KSS
     3     LKI
     ……
     N     ADD
B表  bid   name_id  ports
     1     1        9089
     2     1        8089
     3     1        7089
     4     2        6077
     5     2        7077
     6     3        8900
     ……
查询结果要求为:
     aid   bid     ports
     1     1        9089
     2     4        6077
     3     6        8900
谢谢!

解决方案 »

  1.   

    select A.aid,C.bid,B.ports
    from A,(
    select *
    from B B1
    where not exists (select 1 from B B2 where B1.name_id=B2.name_id and B1.id < B2.id)
    )C
    where A.name = C.name_id
      

  2.   

    SELECT * FROM A INNER JOIN (
    SELECT * FROM B A WHERE NOT EXISTS(SELECT 1 FROM B WHERE A.name_id=name_id and Aid>id)) C
    ON A.aid=C.name_id
      

  3.   

    select *
    from a ,b
    whree a.aid=b.name_id
    group by a.aid