Sử dụng WHERE cot IN (val1, val2) GROUP BY cot_nhom HAVING COUNT(*) = so_luong_gia_tri để tìm nhóm có đủ các giá trị yêu cầu.
Ví dụ minh họa
Tạo bảng User-Subject:
mysql> CREATE TABLE DemoTable1885 (FirstName VARCHAR(20), Subject VARCHAR(50));
mysql> INSERT INTO DemoTable1885 VALUES('John','MySQL'),('John','MongoDB'),('Carol','MySQL'),('David','Java');
Tìm user học CẢ MySQL VÀ MongoDB (đủ 2 môn):
mysql> SELECT FirstName FROM DemoTable1885
WHERE Subject IN('MySQL','MongoDB')
GROUP BY FirstName HAVING COUNT(*) = 2;
Kết quả:
+-----------+ | FirstName | +-----------+ | John | +-----------+
Giải thích: IN lọc các hàng liên quan, GROUP BY gom theo user, HAVING COUNT=2 đảm bảo user có cả 2 môn. Chuẩn hơn dùng HAVING COUNT(DISTINCT Subject)=2 phòng trùng lặp.