日期:2014-05-17  浏览次数:20417 次

等考的一道题
29.有教师表(教师号,姓名,职称,所在系)和授课表(教师号,课程号,授课学年,授课时数),同一门课程可由多个教师讲授,同一个教师也可讲授多门课程,查询从未被"教授"讲授过的课程的课程号,正确的语句是___d___。
(A)SELECT 课程号FROM 授课表 a JOIN 教师表 b ON a.教师号=b.教师号 WHERE职称!='教授'
(B)SELECT 课程号FROM 授课表 a RIGHT OUTTER JOIN 教师表 b ON a.教师号=b.教师号
(C)SELECT 课程号FROM 授课表 WHERE 课程号 NOT IN(SELECT 课程号FROM 授课表 a JOIN 授课表 b ON a.教师号=b.教师号 WHERE职称!='教授')
(D)SELECT 课程号FROM 授课表 WHERE 课程号 IN(SELECT 课程号FROM 授课表 
a JOIN 授课表 b ON a.教师号=b.教师号 WHERE职称!='教授')


正确答案是d哪位大侠告诉我其他几项错误在哪

------最佳解决方案--------------------
A: 非教授教的课程
B: 只是列出了无意义的课程号,可能很多重复的 或者有空
C:转了一圈,还是教授教了哪些科目
总之不符合题意。
------其他解决方案--------------------
首先inner join和right join就有区别了。其实最好理解还是弄点测试数据,执行写一下看结果,有时候文字上的东西,告诉你,现在理解了,过几天就忘记了。但是结果形象,记忆深刻
------其他解决方案--------------------
我认为a和d没什么区别