【发布时间】:2014-01-20 05:09:20
【问题描述】:
有一些课程。课堂上的学生学习科目。我将这些表格连接到每个表格:1 个班级会有很多科目,1 个科目会有很多班级。 Subject M <=> M Class。所以我的数据库中有 3 个表来创建这些关系:
主题:
+----+------+
+ id + name +
+----+------+
类:
+----+-------+------+
+ id + digit + char +
+----+-------+------+
ClassVsTeacher(连接这两个表):
+----+----------+------------+
+ id + class_id + subject_id +
+----+----------+------------+
TeacherVsClass(对于第二个问题很重要,用于连接班级和教师):
+----+----------+------------+
+ id + class_id + teacher_id +
+----+----------+------------+
1) 我说的对吗?
2) 我现在正在为课程添加主题。 我想在下拉列表中显示至少有 1 位老师的所有科目,但当前班级已经连接的科目除外。
我知道如何显示至少有 1 位老师的所有科目:
select
`s`.`id`, `s`.`name`
from `Subject` as `s`
where
`s`.`id` in (select `subject_id` from `TeacherVsSubject`)
它工作正常,但我不明白如何展示这一点,除了已经连接到当前课程的科目。这是我的问题。
【问题讨论】:
-
一门课只有一位老师教吗?还是很多老师可以教一门学科?
-
注意为了便于阅读,您不需要在 MySQL 中对每个名称进行反引号转义,只要那些也是关键字的名称即可。
-
我想你的意思是
ClassVsSubject? -
@Prodikl,当然是
ClassVsSubject。 @Dai,好的,谢谢。 @hashbrown,很多老师都可以教一门学科。