【发布时间】:2023-03-21 14:25:01
【问题描述】:
我有 3 个表课程、成绩和评估。我想比较两张表的等级和评价。如果表grade中的数据在表评估中不存在,则数据会出现(输出)
" select Grade.ID_Courses,Course.ID_Courses,Grade.NAME,
Course.NAME, Grade.ID_Courses,
Evaluation.NAME,
Evaluation.Year,
Grade.Year
from Grade, Course, Evaluation
WHERE
Grade.ID_Courses=Course.ID_Courses AND
Grade.NAME=JOHN and
Grade.Year=1 and
Evaluation.NAME=GRADE.NAME and
Grade.ID_Courses NOT IN (SELECT ID_Courses FROM Evaluation where NAME=JOHN and Year=1 )
GROUP BY Grade.ID_Courses"
问题是当名字 john 不在表评估中时,没有输出。
【问题讨论】:
-
避免not in.try not exists或left join patterns
-
这是一个很好的查询!
-
就此而言,尝试显式连接模式!