如图是表结构 ,在不改变表结构的情况下 如何完成:
查询没有学全所有课的同学的学号、姓名、以及未学科目

解决方案 »

  1.   

    通过如下sql获取你想要的结果:
    select c_id,cname,s_id,sname from course c,student s 
    where (c_id,cname,s_id,sname)
    not in
    (select ts.c_id,ts.cname,ts.s_id,ts.sname from (
    select distinct c.c_id,cname,s.s_id,sname from student s
    inner join sc a on s.s_id=a.s_id
    inner join course c on a.c_id=c.c_id
    inner join teacher te on c.t_id=te.t_id ) ts)mysql实现还是和oracle差别比较大,如果用oracle只需要用minus就可以实现了