2017-01-26 4 views
-1

最初に、私はSQL言語を初めて使っています。MySqlは5つのテーブルを結合します

私は学校管理システムをやっているので、生徒の名前、クラス、名前、科目名、生徒の得点などの結果を生成する必要があります。ここで私は、クラス学生対象マーク試験という名前の5つのテーブルを作ってきました。私はこれを行うと思った方法を説明しましょう、私は、私はCLASS_IDと生徒の情報を格納する**学生テーブルを作ったテーブルクラス*からCLASS_IDの被験者を格納対象テーブルを作った、クラス情報を持っているクラステーブルを作りましたテーブルクラスから。私は試験試験情報とキーまたはメインテーブルマークを持っているテーブルを作ったstudent_id、class_id、subject_id、exam_idとstudentによって得られたマークが格納されています。

Link to view my database tables

クエリは、私が得STUDENT_ID、CLASS_ID、subject_idやマークと一緒にクエリを使用して結果を生成する方法

SELECT 
m.class_id, 
m.student_id, 
m.subject_id, 
c.class_name, 
sub.subject_name, 
st.first_name 
    FROM 
marks AS m 
    JOIN 
class AS c ON m.marks_id = c.class_id 
    JOIN 
subject AS sub ON sub.subject_id = m.subject_id 
    JOIN 
       student AS st ON st.student_id = m.student_id 
       WHERE 
      m.exam_id = 1; 

を試してみましたか? M AS

SQLフィドルリンク

enter link description here
+3

このサイトは質問です。 –

+0

申し訳ありませんが、私は前に質問に言及するのを忘れました。 –

答えて

0

をc.class_id
SELECT m.Student_id, m.Class_id, m.Subject_id, st.first_name, c.class_name, sub.subject_name, m.p_marks 
FROM marks as m 
    JOIN class as c 
ON m.class_id = c.class_id 
    JOIN student as st 
ON m.student_id = st.student_id 
    JOIN subject as sub 
ON m.subject_id = sub.subject_id 
    WHERE m.exam_id = 1; 

もしp_marksが得点であれば、それはマークテーブルにあると言ったので、これはあなたのためにうまくいくはずです、歓声

+0

それは男、歓声を働いた –

+0

投票してください、それはあなたのために働いた場合は、私の答えを受け入れる:) –

0

マークがC ON m.marks_id = c.class_id がクラスに参加Mと

マークされるべきであるC ON m.class_id = AS クラスに参加します[OK]を

SELECT 
m.class_id, 
m.student_id, 
m.subject_id, 
c.class_name, 
sub.subject_name, 
st.first_name, 
m.p_marks, 
m.t_marks 
    FROM 
marks AS m 
    JOIN 
class AS c ON m.class_id = c.class_id 
    JOIN 
subject AS sub ON sub.subject_id = m.subject_id 
    JOIN 
       student AS st ON st.student_id = m.student_id 
       WHERE 
      m.exam_id = 1; 
+0

ありがとうございました。 sqlを初めて使用しています。 –

+0

このタイプのクエリを作成するためのリンクを教えてください。 –

+0

sqlが更新されました。あなたはマークテーブルからマークを得ることができます。 キーワード「内部結合」を検索して回答を得ることができます。 – anguspcw

関連する問題