Tôi có hai bảng:SQL - có VS nơi
1. Lecturers (LectID, Fname, Lname, degree).
2. Lecturers_Specialization (LectID, Expertise).
Tôi muốn tìm các giảng viên với Chuyên ngành nhất. Khi tôi cố gắng này, nó không hoạt động:
SELECT
L.LectID,
Fname,
Lname
FROM Lecturers L,
Lecturers_Specialization S
WHERE L.LectID = S.LectID
AND COUNT(S.Expertise) >= ALL (SELECT
COUNT(Expertise)
FROM Lecturers_Specialization
GROUP BY LectID);
Nhưng khi tôi cố gắng này, nó hoạt động:
SELECT
L.LectID,
Fname,
Lname
FROM Lecturers L,
Lecturers_Specialization S
WHERE L.LectID = S.LectID
GROUP BY L.LectID,
Fname,
Lname
HAVING COUNT(S.Expertise) >= ALL (SELECT
COUNT(Expertise)
FROM Lecturers_Specialization
GROUP BY LectID);
lý do là gì? Cảm ơn.
Bạn có thể làm rõ phiên bản SQL nào bạn đang sử dụng (MySQL, MS SQL, PostgreSQL, Oracle, v.v.). Ngoài ra, khi bạn nói "không hoạt động", bạn có nghĩa là kết quả không như bạn mong đợi hoặc có lỗi biên dịch/phân tích cú pháp không? – jklemmack
Tại sao bạn sử dụng TẤT CẢ thay vì MAX ?. Có lợi thế nào không? – skan