好的,我有3张桌子:
学生将包含学校学生的所有信息 Offered_subjects将包含学校提供的所有科目 Enrollees_list将包含有关学生注册的主题的所有信息,还将包含该主题的评论(通过或失败)。
现在,offers_subjects中的主题包含具有先决条件的课程(即,在获得MySQL101资格之前,学生mas在DBMS101中有传递评论)
先决条件的类别是:
请注意,并非所有offers_subjects中列出的主题都具有其先决条件的所有类别。有些要求完成某个科目,有些要求学生必须在某个学年(即第3年),有些要求全部三个。
该计划所需要的是显示所有符合选定科目资格的学生。
假设:MySQL101具有第2年,第2个sem,DBMS101的先决条件
我需要列出所有第二年,第二季的学生,并在DBMS101中发表评论。
如果所有主题的先决条件都有相同的类别,我可以在where
子句中添加相同的查询,这很容易,但我的问题是,并非所有subject_subjects中列出的主题都包含所有主题其先决条件的类别。
我是MySQL的新手,现在让我感到困惑。
我该怎么做?
答案 0 :(得分:1)
我猜你在Offered_subjects表上有以下列:
如果您的某个主题在此列中没有值,则可以忽略此列的此检查。类似的东西:
Select ... where (Subject.req_year is null OR Student.year >= Subject.req_year) ...
这样,如果它为空,则不会考虑所需的年份。
(注意:我现在还不完全确定语法,但这就是主意)。