Jeg vil foreslå at bruge aggregering:
SELECT `Reg.No`, SubjectCode, SUM(`Pass/Fail` = 'Pass')
FROM results
GROUP BY `Reg.No`, SubjectCode
HAVING SUM(`Pass/Fail` = 'Pass') = 0;
HAVING klausul tæller antallet af resultater for hver elev og kursus, hvor den sidste kolonne er 'Pass' . I MySQL behandles booleaner som heltal i en numerisk kontekst, hvor sand er 1. Så sum( Bestået/Ikke bestået= 'Pass') tæller antallet af gange, en elev har bestået kurset. = 0 siger, at eleven aldrig har bestået kurset.
Som et forslag, indsæt ikke specialtegn såsom / og . i kolonnenavne. Det kræver, at man undslipper kolonnerne og gør bare koden sværere at skrive, fordi den er fyldt med backticks.