两个表关联
disease表
id  diseasename
 1    高血压
 2    糖尿病
..........(假设很多条数据)treatment表
id treatmentname  diseaseid
1   高血压中医治疗    1
2   高血压西医药治疗  1
..........(假设很多条数据)求语句.disease表中随机抽取10条有treatment表存在的sql语句?

解决方案 »

  1.   

    select a.* , b.* from disease a , treatment b where a.id = b.diseaseid
      

  2.   

    select t.* , b.* from (select top 10 a.* from disease order by newid()) t , treatment b where t.id = b.diseaseid
      

  3.   

    select a.* from disease a where exists(select 1 from treatment b where a.ID=b.diseaseid) 
      

  4.   


    select top 10 a.* , b.* from disease a , treatment b where a.id = b.diseaseid order by newid()
      

  5.   

    select   top 10 a.*   from   disease   a   where   exists(select   1   from   treatment   b   where   a.ID=b.diseaseid)   
    order by newid()
      

  6.   


    SELECT TOP 10 * 
       FROM disease A
         WHERE EXISTS
                (SELECT * 
                     FROM treatment B
                       WHERE A.id = B.diseaseid)
            ORDER BY NEWID()
                       
      

  7.   

    两个表关联 
    disease表 
    id     diseasename 
      1         高血压 
      2         糖尿病 
    ..........(假设很多条数据) treatment表 
    id   treatmentname     diseaseid 
    1       高血压中医治疗         1 
    2       高血压西医药治疗     1 
    ..........(假设很多条数据) 求语句.disease表中随机抽取10条有treatment表存在的sql语句并求出存在treatment表treatmentname行数
      

  8.   

    select  top 10 a.*   from   disease   a   where   exists(select   1   from   treatment   b   where   a.ID=b.diseaseid) order by newid()  
      

  9.   

    select top 10 a.id,a.diseasename, count(1) 
    from disease a , treatment b 
    where a.id = b.diseaseid 
    group by a.id,a.diseasename 
    order by newid())
      

  10.   

    select top 10 a.id,a.diseasename, count(1) 
    from disease a , treatment b 
    where a.id = b.diseaseid 
    group by a.id,a.diseasename 
    order by newid()