当前位置: 代码迷 >> Oracle认证考试 >> 一道关于SQL语言查询题目求解,该怎么处理
  详细解决方案

一道关于SQL语言查询题目求解,该怎么处理

热度:307   发布时间:2016-04-24 03:50:51.0
一道关于SQL语言查询题目求解
报了计算机等级考试,四级数据库,这几天做题,遇到一道算是拦路虎的,发上来,大家帮忙解答一下,小妹在此谢过了。。
题目如下:
有教师表(教师号,姓名,职称,所在系)和授课表(教师号,课程号,授课学年,授课时数),同一门课程可由多个教师讲授,同一个教师也可以讲授 多门课程,查看从未被“教授”讲授过的课程的课程号,正确的语句是:
A.select 课程号 from 授课表 a jion 教师表b on a.教师号=b.教师号 where 职称!='教授'
B.select 课程号 from 授课表 a right outter jion 教师表 b on a.教师号=b.教师号
C.select 课程号 from 授课表 where 课程号 not in (select 课程号 from 授课表 a jion 教师表 b on a.教师号=b.教师号 where 职称!=‘教授’)
D.select 课程号 from 授课表 where 课程号 in (select 课程号 from 授课表 a jion 教师表 b on a.教师号=b.教师号 where 职称=‘教授’)

------解决方案--------------------
解析:
A.select 课程号 from 授课表 a jion 教师表b on a.教师号=b.教师号 where 职称!='教授'
如果某个课程还从未未分配老师授课,则被错杀。错
B.select 课程号 from 授课表 a right outter jion 教师表 b on a.教师号=b.教师号
不用解释了吧,错
C.select 课程号 from 授课表 where 课程号 not in (select 课程号 from 授课表 a jion 教师表 b on a.教师号=b.教师号 where 职称!=‘教授’)
子查询=不是“教授”所带的所有课程,not in后等价于是“教授”的和未分配的课程。错
D.select 课程号 from 授课表 where 课程号 in (select 课程号 from 授课表 a jion 教师表 b on a.教师号=b.教师号 where 职称=‘教授’)
查询出所有“教授”所带课程。错

结论:全错

  相关解决方案