我有一个Grades表,其中包含以下字段:
-STUDENT_ID
-COURSE_ID
-FIRST_TERM
-SECOND_TERM
-Final
课程表:
-COURSE_ID
-NAME
-DEPARTMENT_ID
我试图获得特定学生的所有成绩,并指定每门课程的成绩,我想知道如何获得每门课程的名称?
这是我获得成绩的方式,但我也希望包括课程名称:
SELECT student_id,
course_id,
(first_term+second_term+final) AS "Total Mark"
FROM MARKS
WHERE student_id = 1;
答案 0 :(得分:0)
SELECT student_id, m.course_id,c.name as course_name, (first_term+second_term+final) AS "Total Mark" FROM MARKS M inner join course c on m.course_id = c.course_id WHERE student_id = 1;
使用标记和课程表之间的内部联接从课程表中获取名称。
答案 1 :(得分:0)
您可以使用此查询:
SELECT s.student_id,
s.course_id,
c.course_name,
(s.first_term+s.second_term+s.final) AS "Total Mark"
FROM marks s
INNER JOIN course c ON c.course_id = s.course_id
WHERE s.student_id = 1
确保在两个表中使用表名时为字段名添加前缀(例如course_id
)。我用表别名为所有字段添加了前缀。
表别名就像表的短名称,您可以在FROM
子句中的表名后面定义它们。
答案 2 :(得分:0)
SELECT student_id,
course_id,
name,
(first_term+second_term+final) AS "Total Mark"
FROM MARKS m, Course c
WHERE (student_id = 1) and c.course_id=m.course_id;