有一个表a, 有如下信息
1 aaa
2 bbb
3 ccc
...有一个表b, 有如下信息.
a
b
c
d
e
f想查询下表的信息, 怎么办?
a  1 aaa
b  1 aaa
c  3 ccc
d  3 ccc
e  2 bbb
f  1 aaa就是说第一个字段从b表依次提取, 后2个字段从a表中随机提一行(有可能重复),
怎么写这样的sql语句?

解决方案 »

  1.   

    select a.字段1,b.字段1,b.字段2
    from tb1 a , tb2 b
      

  2.   

    declare @a table(id int,val varchar(10))
    insert into @a select 1,'aaa'
    insert into @a select 2,'bbb'
    insert into @a select 3,'ccc'
    declare @b table(code varchar(10))
    insert into @b select 'a'
    insert into @b select 'b'
    insert into @b select 'c'
    insert into @b select 'd'
    insert into @b select 'e'
    insert into @b select 'f'select 
        * 
    from 
        @b b,@a a
    where 
        a.id=(select top 1 id from @a where b.code=b.code order by newid()) 
    order by 
        b.code/*
    code       id          val        
    ---------- ----------- ---------- 
    a          1           aaa
    b          3           ccc
    c          1           aaa
    d          3           ccc
    e          2           bbb
    f          3           ccc
    */
      

  3.   

    谢谢! 请问b.code=b.code 这句起什么作用? 我去掉好象就不行.
      

  4.   

    select * into #a into from table1 order by newid()
    insert into table select table2.字段1,#a.字段1,#a.字段2 from #a,table2