A表 a1,a2,a3 主键a1
B表a1,b2,b3 主键a1
问:我现在要查出B表中b2的10条记录然后再与A表中a2组成一条记录,请问怎写SQL 语句?谢谢

解决方案 »

  1.   

    select _B.b2,A.a2 from A,(select top 10 B.b2 from B) as _B where A.a1=B.a1
    子查询(select top 10 B.b2 from B)是在B中选择10条记录(因为LZ没有说明选择10条记录的具体条件,所以我用的是top 10),主查询就是在把A表中的b2与B中那合要求的十条记录的联合...
      

  2.   

    哦,早说啥,我以为只是查询也...DECLARE cur CURSOR FOR
    select _B.b2,A.a2 from A,(select top 10 B.b2 from B) as _B where A.a1=B.a1OPEN curDECLARE @b2 varchar(30)
    DECLARE @a2 varchar(30)
    DECLARE @resu varchar(1000)FETCH NEXT FROM cur INTO @b2,@a2WHILE @@FETCH_STATUS=0
    BEGIN
    set @resu=@resu+' | '+@b2+@a2
    FETCH NEXT FROM cur INTO @b2,@a2
    END
      

  3.   

    有点小问题,修改后的程序如下:
    DECLARE cur CURSOR FOR
    select _B.b2,A.a2 from A,(select top 10 B.b2 from B) as _B where A.a1=B.a1OPEN curDECLARE @b2 varchar(30)
    DECLARE @a2 varchar(30)
    DECLARE @resu varchar(1000)FETCH NEXT FROM cur INTO @b2,@a2SET @resu=''WHILE @@FETCH_STATUS=0
    BEGIN
    set @resu=@resu+' | '+@b2+';'+@a2
    FETCH NEXT FROM cur INTO @b2,@a2
    END
    CLOSE cur
    DEALLOCATE cur--------------------------------------------------
    测试数据及结果:
      数据:
      6 Meat/Poultry
      7 Produce
      8 Seafood  结果:
    | 6,Meat/Poultry | 7,Produce | 8,Seafood