POSTGRESQL: как фильтровать для создания запроса?

У меня есть вопрос с текстовой книгой; Перечислите идентификаторы и имена людей, которые получили класс A для каждого класса для таблиц;

Студент {studentID, имя} Класс {studentID, имя курса, класс}

и я не уверен, как отфильтровать оценки, чтобы я только показывал учеников А. Пока у меня есть решение

SELECT Student.studentID, Student.name FROM Student, Grade WHERE Student.studentID = Grade.StudentID AND Grade.grade = 'A' AND Grade.grade != 'B' AND Grade.grade != 'C' AND Grade.grade != 'D' AND Grade.grade != 'F'; 

Есть ли более чистый способ, я могу отфильтровать это. Кажется, немного утомительно, что я пишу не равным 4 раза.

 select studentid, s.name from student s inner join grade g using (studentid) group by studentid, s.name having bool_and(g.grade = 'A') 

вы можете использовать класс NOT EXISTS . мы получаем всех учеников, которые не получили А и отфильтровывали их.

 SELECT DISTINCT Student.studentID, Student.name FROM Student JOIN Grade ON Student.studentId = Grade.studentId WHERE NOT EXISTS ( SELECT 1 FROM Grade G WHERE G.grade !='A' and G.studentID = Student.studentID )