2017-01-26 2 views
-1

Zuerst bin ich neu in SQL-Sprache.MySql beitreten 5 Tabellen

Ich mache Schulverwaltungssystem und ich muss Ergebnis mit Name des Schülers, Klasse, Name, Name des Faches und Noten von Studenten erhalten. Hier habe ich 5 Tabellen mit dem Namen gemacht Klasse, Schüler, Thema, Marken und Prüfung. Lassen Sie mich erklären, wie ich dies getan habe, machte ich Klasse Tabelle, die Klasseninformationen haben, machte ich Thema Tabelle, die Fächer mit class_id aus Tabelle Klasse * speichert, machte ich ** Student Tabelle, die Student Informationen mit class_id speichert aus Tabelle Klasse. Ich machte Prüfung Tabelle, die Prüfung Informationen und Schlüssel oder Haupttabelle Markierungen, die students_id, class_id, subject_id, exam_id mit erhaltenen Noten von Studenten gespeichert hat.

Link to view my database tables

Abfrage habe ich versucht,

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; 

Wie Ergebnis Abfrage erhalten zusammen mit STUDENT_ID, class_id, subject_id und Marken mit generieren?

SQL Fiddle Link enter link description here

+3

Diese Seite ist für Fragen. –

+0

Entschuldigung Mann Ich vergaß, Frage vorher zu erwähnen. –

Antwort

0

Ok,

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; 

Wenn p_marks Markierungen erhalten, wie Sie sagten, dass es in Markentabelle ist, sollte dies für Sie funktionieren, Prost

+0

Es funktionierte Mann, Prost –

+0

bitte stimmen Sie ab und akzeptieren Sie meine Antwort, wenn es für Sie arbeitete, danke :) –

0

Marken AS m JOIN Klasse AS c ON m.marks_id = c.class_id sollte

Marken AS m JOIN Klasse AS c ON m.class_id = c.class_id

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

Danke Kumpel, Ich bin neu auf SQL. Können Sie diese Abfrage bitte erläutert –

+0

Kann können Sie mir den Link zu lernen, diese Art der Abfrage –

+0

die SQL wurde aktualisiert haben. Sie können die Markierungen aus der Markierungstabelle erhalten. können Sie das Keyword "Inner Join" suchen, um die Antwort zu erhalten. – anguspcw