数据库三张表,学生表,教师表和课程表

打油的程序员 2013-01-19 03:05:58
数据库三张表,学生表,教师表和课程表。
Student (studentId,studentName)
Teacher (teacherId,teacherName)
Course (studentId,teacherId,CourseName)
显示所有满足这样条件的学生名字和老师名字,每个老师只教一个学生,每个学生只由一个老师教,也就是老师和学生一对一。
比如Course表有记录:
1,1,cn1
1,2,cn2
2,1,cn3
3,3,cn4
4,5,cn5
只显示最后两条记录对应的老师名字和学生名字
...全文
2073 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajune 2013-01-19
  • 打赏
  • 举报
回复
先枚举出教师的个数,然后在枚举出每个教师所教的学生,然后从中按楼主选出所需的条件的结果
善若止水 2013-01-19
  • 打赏
  • 举报
回复
这好办呀,在课程表中分别对学生id和教师id进行group by取count(*)=1的学生id和教师id,再依据选出来的id 关联姓名
fw0124 2013-01-19
  • 打赏
  • 举报
回复
select studentname, teachername from(
select max(studentid) studentid, teacherid from course where teacherid in (
select max(teacherid) from course group by studentid having count(teacherid) = 1)
group by teacherid having count(studentid) = 1) t,
student, teacher
where t.studentid=student.studentid and t.teacherid=teacher.teacherid;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧