有3个表1,CS表-保存检查项目信息
检查项目编号 Varchar(3)
检查项目名   Varchar(50)2,HOSP表-保存医院信息
医院编号  Varchar(3)
医院名    Varchar(50)3,CSHP表-保存各个医院能够做的检查项目
医院编号  Varchar(3)
检查项目编号 Varchar(3)现在需要查找能够做CS表中所有检查项目的医院的名字,要求用1条SQL语句
数据量不大,不用过分追求效率。(各表纪录数约 20,100,1500)

解决方案 »

  1.   

    1: CS <table>
    proId,proName2: HOSP <table>
    hospId,hospName3: CSHP <table>
    hospId,proId=========================sql====================   select h.hospName
         from HOSP h,
              CSHP c,
              (
               select count(*) cs_count from CS
              )cs
        where c.hospId = h.hospId
        group by c.hospId
        having count(*) = cs_count;
      

  2.   

    SELECT t2.医院名,t1.检查项目名
    FROM   CS t1
    LEFT   OUTER JOIN CSHP t2 ON t1.检查项目编号 = t2.检查项目编号
    LEFT   OUTER JOIN HOSP t3 ON t2.医院编号 = t3.医院编号
      

  3.   

    select cs.检查项目编号, cs.检查项目名, hosp.医院编号, hosp.医院名
    from cs, cshp, hosp
    where cs.检查项目编号=cshp.检查项目编号(+) and cshp.医院编号=hosp.医院编号(+)