有三个表:
学生表(学号,姓名,性别)
课程(课程号,课程名)
选课(学号,课程号,成绩)
题目:
 查询至少选修了课程号为'c1'和'c2'二门课程的学生姓名求帮助

解决方案 »

  1.   


    --mssql
    select c.* from 
    (select 学号 from 选课 where 课程号='c1') a,(select 学号 from 选课 where 课程号='c2')b,
    学生表 c
    where a.学号=b.学号 and b.学号=c.学号
      

  2.   


    我调了,这样可以实现,但是我不懂from后加的子查询,那个a是什么意思,是子查询的别名吗?
      

  3.   

    如果要求选了c1,c2,c3,...c10,要写10次join?这种问题, 最合适和通用的还是 select ... from ... where x in (c1,c2,c3,..c10) having  count(distinct x) = in中的item.count
      

  4.   

    先读三遍《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html