请教大牛,数据库联表查询问题~~和普通联表情况不一样哦
现有两个表,student 学生表 (student_id,student_name,class_id)
和 class 课程表 (class_id,class_name),一个学生会上很多门课,所以student.class_id会是1,3,6,8这样的形式存值。
现在要查每门课有多少学生在上,怎么进行联表查询呢?
------解决方案--------------------表的连接几十年没变,没有什么普通连表高级连表一说。
无非是你要用SQL技巧去解决煞笔的表设计,表设计得越煞笔,SQL技巧就越绚丽。
如果科目的字符不会重复 instr(student.class_id,class.class_id)>0
如果科目的字符重复就用(select level from dual connect by level<?)拆行。
------解决方案--------------------select class_id, class_name,
( select count(*) from student
where instr(student.class_id
------解决方案--------------------',' , class.class_id
------解决方案--------------------',')>0) amount
from class;