My tables are the following, what query do I use to find the student with highest grade (A) in all courses?
CREATE TABLE Student (
Email VARCHAR(50) PRIMARY KEY,
Name VARCHAR(50) NOT NULL
);
CREATE TABLE Course (
Name VARCHAR(50) PRIMARY KEY,
StartDate DATE NOT NULL,
EndDate DATE NOT NULL,
TeacherEmail VARCHAR(50),
FOREIGN KEY (TeacherEmail) REFERENCES Teacher(Email)
);
CREATE TABLE Grade (
StudentEmail VARCHAR(50) NOT NULL,
CourseName VARCHAR(50) NOT NULL,
Grade VARCHAR(2) NOT NULL,
FOREIGN KEY (StudentEmail) REFERENCES Student(Email),
FOREIGN KEY (CourseName) REFERENCES Course(Name)
);
CodePudding user response:
You can try this:
SELECT s.Name, g.Grade FROM Student s
LEFT JOIN Grade g ON s.email = g.StudentMail
WHERE g.Grade = 'A'
CodePudding user response:
SELECT MAX(Grade) AS HighestGrade FROM Grade;
