Sử dụng NOT IN với subquery để tìm các giá trị trong cột này không xuất hiện trong tập kết quả của subquery (ví dụ: user không phải Admin).
Ví dụ minh họa
Tạo bảng và chèn dữ liệu:
mysql> CREATE TABLE DemoTable1840 (UserName VARCHAR(20), UserType ENUM('GUEST','ADMIN'));
mysql> INSERT INTO DemoTable1840 VALUES('Chris','Admin'),('David','Guest'),('Chris','Guest');
Tìm UserName KHÔNG có vai trò Admin:
mysql> SELECT UserName FROM DemoTable1840
WHERE UserName NOT IN (SELECT UserName FROM DemoTable1840 WHERE UserType='Admin');
Kết quả:
+----------+ | UserName | +----------+ | David | +----------+
Lưu ý: NOT IN trả về rỗng nếu subquery chứa NULL. Thay thế bằng NOT EXISTS an toàn hơn:
SELECT UserName FROM DemoTable1840 t1 WHERE NOT EXISTS (SELECT 1 FROM DemoTable1840 t2 WHERE t2.UserName=t1.UserName AND t2.UserType='Admin');