求简单SQL查询语句
S表:学号   姓名 
 C表:课程号   学号   成绩 
 T表:课程号   老师名   
 1,求选择了李老师所有课程的学生姓名 
 2,求没选择李老师一门课程的学生姓名 
 3,求选择了所有课程的学生姓名   
 希望都能解答   解答一两个也给分!   谢谢各位了
------解决方案--------------------select 姓名 From S JOIN C ON S.学号=C.学号 where C.课程号 IN(SELECT 课程号 FROM T WHERE 老师名= '李老师 ')   
 select 姓名 From S JOIN C ON S.学号=C.学号 where C.课程号 NOT  IN(SELECT 课程号 FROM T WHERE 老师名= '李老师 ')     
 select 姓名 From S JOIN C ON S.学号=C.学号 where C.课程号 IN(SELECT 课程号 FROM T )
------解决方案--------------------1.SELECT S.姓名 
 FROM S INNER JOIN 
       C ON S.学号 = C.学号 INNER JOIN 
       T ON C.课程号 = T.课程号 
 WHERE (T.教师姓名 =  'li ')   
 2.SELECT S.姓名 
 FROM S INNER JOIN 
       C ON S.学号 = C.学号 INNER JOIN 
       T ON C.课程号 = T.课程号 
 WHERE (T.教师姓名  <>   'li ')   
 3.SELECT S.姓名 
 FROM S INNER JOIN 
       C ON S.学号 = C.学号 INNER JOIN 
       T ON C.课程号 = T.课程号
------解决方案----------------------不简单了 
 --1 
 select s.姓名 from s where not exists( select * from t where t.老师名= '李老师 ' and not exists(select * from c where c.学号=s.学号 and t.课程号=c.课程号 )) 
 --2 
 select s.姓名 from s where not exists(select * from c,t where c.课程号=t.课程号 and c.学号=s.学号 and t.老师名= '李老师 ') 
 --3 
 select s.姓名 from s where not exists(select * from t where not exists(select *from c where c.学号=s.学号 and c.课程号=t.课程号))
------解决方案--------------------exists是比较难掌握的  试试理解下面的     
 ----1 
 select 学号 from (select distinct 课程号,学号 from c where 课程号 in (select t.课程号 from t where t.老师名= '李老师 ')) group by 学号 having count(*)=(select count(*) from t where 老师名= '李老师 ')   
 ---3 
 同理