/ / Wie schreibe ich eine Kreuztupel-Abfrage in MySQL - mysql, Join

Wie schreibe ich eine Kreuztupel-Abfrage in MySQL - mysql, Join

Wie kann ich eine Kreuztupelabfrage schreiben, die aus zwei Tabellen in derselben Datenbank auswählt und die Ausgabe sich wiederholende Spalten mit unterschiedlichen Daten hat. Dies ist meine besuchte Abfrage:

    SELECT results.AcademicYear,results.Semester,student.name,results.StudentNo,results.CourseNo,results.CAMarks,results.ExamMarks,results.TotalMarks,results.Grade
FROM results,student
WHERE results.StudentNo IN(
SELECT student.studentNO
FROM student
)
GROUP BY AcademicYear, Semester,name
ORDER BY name,AcademicYear ASC,Semester ASC

Dieses Bild ist ein Beispiel für eine gewünschte Ausgabe der Abfrage: Dieses Bild ist ein Beispiel für eine gewünschte Ausgabe der Abfrage

Antworten:

0 für die Antwort № 1

Wenn es in demselben Semester viele Kurse für denselben Studenten gibt, wird die Anzahl der Spalten stark steigen. Die folgende Lösung behandelt bis zu 2 Kurse im selben Semester für denselben Schüler.

SELECT
results.AcademicYear,results.Semester,student.name,results.StudentNo,
results.CourseNo,results.CAMarks,results.ExamMarks,results.TotalMarks,results.Grade
FROM results
LEFT JOIN results r2 ON results.AcademicYear = r2.AcademicYear AND
results.Semester = r2.Semester AND
results.name = r2.name AND
results.CourseNo != r2.CourseNo
INNER JOIN student ON results.StudentID = student.StudentID
ORDER BY name,AcademicYear ASC,Semester ASC