SQL--查询没学过“xxx”老师课的同学,显示(学号、姓名)(使用with子句)

显示各个表信息

SELECT * FROM student s;
SELECT * FROM teacher t;
SELECT * FROM course c;
SELECT * FROM student_core sc;
--1.  查询没学过“xxx”老师课的同学,显示(学号、姓名)
----a.查看学生学过的课以及该门课的授课老师(使用with子句)
with s_t as(
select sc.student_no stu_no, t.teacher_name t_name 
  from student_core sc, course c,teacher t
 where sc.course_no = c.course_no
   and c.teacher_no = t.teacher_no)
----b.连接上学生表并筛选出学过该老师课程的学生 学号
/*
select s.student_no s_no from student s ,s_t where s.student_no=s_t.stu_no and s_t.t_name='xxx' group by s.student_no
*/
----c.从学生表中除去学过该老师课程的学生并得到最终结果
select s.student_no, s.student_name
  from student s
 where s.student_no not in (select s.student_no s_no
                              from student s, s_t
                             where s.student_no = s_t.stu_no
                               and s_t.t_name = 'xxx'
		group by s.student_no);

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒曰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值