现有两个表,student 学生表 (student_id,student_name,class_id)
和 class 课程表 (class_id,class_name),一个学生会上很多门课,所以student.class_id会是1,3,6,8这样的形式存值。现在要查每门课有多少学生在上,怎么进行联表查询呢?

解决方案 »

  1.   

    表的连接几十年没变,没有什么普通连表高级连表一说。无非是你要用SQL技巧去解决煞笔的表设计,表设计得越煞笔,SQL技巧就越绚丽。如果科目的字符不会重复 instr(student.class_id,class.class_id)>0如果科目的字符重复就用(select level from dual connect by level<?)拆行。
      

  2.   

    select class_id, class_name, 
           ( select count(*) from student 
                 where instr(student.class_id||',' , class.class_id||',')>0) amount
      from class;