关系代数和sql

时间:2014-05-08 19:50:05

标签: sql relational-algebra

找出那些在11到16岁之间达到一个或多个最终成绩的候选人的姓名和人数?

DEPARTMENT(D#,D-NAME,HEAD-OF-DEPT)
MODULE(M#,M-NAME,M-LEVEL,D#)
CANDIDATE(C#,C-NAME,C-ADDRESS)
RESULT(C#,M#,CW-GRADE,EXAM-GRADE,FINAL-GRADE)

我不理解11到16之间的一个或多个最终成绩。

这是查询的当前状态:

SELECT C#, C_NAME 
  FROM CANDIDATE C, 
       RESULT R 
 WHERE R.C# = C.C# AND 
       FINAL_GRADE BETWEEN 11 AND 16;

3 个答案:

答案 0 :(得分:1)

长话短说:

SELECT C#, C_NAME 
  FROM CANDIDATE C
 WHERE (SELECT COUNT(*) 
          FROM RESULT R 
         WHERE R.C# = C.C# AND 
               FINAL_GRADE BETWEEN 11 AND 16) >= 1;

答案 1 :(得分:0)

在关系/表RESULT中,有一个属性/列FINAL-GRADEFINAL-GRADE的值可能是整数。查找该表中FINAL-GRADE属性值介于11和16之间的行。

在同一个表RESULT中,还有另一个属性C#。表CANDIDATE中将显示具有相同名称的属性。 C#可能是"候选人编号"的缩写,因此C#中显示的RESULT外键指回CANDIDATE中的特定行("元组")。 "数字和名称"的那一行的价值是多少? (名称可能是C-NAME属性)?

答案 2 :(得分:0)

你刚刚获得了sql,试着以相反的方式阅读它。 不要忘记Restrict,Join,&项目。 哈哈UTM学生:v 欢呼声。