选课表t(name,course)
name(姓名) course(课程名)
aa   语文
aa   数学
bb   英语
cc   语文
……想得到只选择了某门课程(如:语文)的人,SQL该怎么写?谢谢

解决方案 »

  1.   

    select name from table where course='语文'
      

  2.   

    --只选择语文
    select name from t where not exists (select 0 from t where course<>'语文')
      

  3.   

    select name from t a where not exists (select 0 from t b where a.name=b.name and b.course<>'语文')
      

  4.   


    select name from tb where course='语文' and name in (select  name from t group by name having count(1)=1)
      

  5.   

    select * from test1 where uname not in(select uname from test1 where course<>'语文')
      

  6.   

    一定要用子查询吗?
    select name from tb where course='语文' and name not in (select name from tb where course <>'语文')
      

  7.   

    select
    distinct a.*
    from 
    tb a
    join
    tb b on a.Name=b.Name
    where
    b.Course='语文'