Sử dụng truy vấn con (subquery) với NOT IN để tìm các bản ghi chỉ có ở bảng thứ hai.
Dữ liệu mẫu
Bảng PresentHistory (2 hàng):
+-------+---------+ | HisID | HisName | +-------+---------+ | 1 | John | | 2 | Bob | +-------+---------+
Bảng PastHistory (4 hàng):
+--------+----------+ | PastId | PastName | +--------+----------+ | 1 | John | | 2 | Bob | | 3 | Carol | | 4 | Jason | +--------+----------+
Truy vấn tìm bản ghi chỉ có ở PastHistory
SELECT * FROM PastHistory WHERE PastName NOT IN (SELECT HisName FROM PresentHistory);
Kết quả:
+--------+----------+ | PastId | PastName | +--------+----------+ | 3 | Carol | | 4 | Jason | +--------+----------+
Hai bản ghi Carol và Jason chỉ tồn tại trong PastHistory.
Lưu ý hiệu năng
Với dữ liệu lớn, NOT EXISTS hoặc LEFT JOIN ... WHERE right.id IS NULL thường hiệu quả hơn NOT IN (đặc biệt khi subquery trả về NULL).