Tôi khuyên bạn nên sử dụng tổng hợp:
SELECT `Reg.No`, SubjectCode, SUM(`Pass/Fail` = 'Pass')
FROM results
GROUP BY `Reg.No`, SubjectCode
HAVING SUM(`Pass/Fail` = 'Pass') = 0;
HAVING
mệnh đề đếm số kết quả cho mỗi sinh viên và khóa học trong đó cột cuối cùng là 'Pass'
. Trong MySQL, boolean được coi là số nguyên trong ngữ cảnh số, với true là 1. Vì vậy, sum(
Đạt / Không đạt = 'Pass')
đếm số lần một học sinh đã vượt qua khóa học. = 0
nói rằng sinh viên không bao giờ vượt qua khóa học.
Theo gợi ý, không đặt các ký tự đặc biệt như /
và .
trong tên cột. Điều đó đòi hỏi phải thoát khỏi các cột và chỉ làm cho mã khó viết hơn vì nó chứa đầy các dấu gạch ngược.