学生,课程之后选课信息表怎么设计??
学生表
id(PK),name
课程 --这里简化不要老师表了,老师名字可重复。
id(PK), name, teacher_name
然后还有一个选课信息的表。
怎么设计呢?
选课信息
学生id,课程id
吗?应该怎么最好呢?
顺便问下,
1)怎么输出全部学生的选课信息? 按学生id排序。
学生id,课程name,teacher_name
2)输出学生最多的老师的名字。
------解决方案--------------------
选课信息表就用你说的。
1)怎么输出全部学生的选课信息? 按学生id排序。
select
from 学生表 a.id as 学生ID,c.name as 课程name,c.teacher_name
inner join 选课信息 b on a.id=b.学生id
inner join 课程 c on b.课程id=c.id
2)输出学生最多的老师的名字。
select top 1 teacher_name
from 选课信息 a inner join 课程 b on a.课程Id=b.id
group by teacher_name
order by count(*) desc
如果是统计一门课程的最多学生的老师,改成
group by a.课程Id,teacher_name
------解决方案--------------------选课表可以按照你那样做
你那两个查询就不写了,楼上的应该没问题
------解决方案--------------------一楼正解