2016-05-14 61 views
0

我有一個成績表,其中我有以下字段:如何在課程表中獲得每個課程名稱,我只有課程ID?

-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

您可以使用此查詢:

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子句中的表名後面定義它們。

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; 

使用的內部標誌,當然表之間的連接,從課程表中獲取的名稱。

+0

標記後的M代表什麼?分數? – hylo

+0

M是Marks表的別名 –

+0

ORA-00904:「C」。「ID」:無效標識符當我使用oracle 10g運行查詢時,出現此錯誤。我需要改變什麼來讓它爲我工作? – hylo

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;