ใช้ Subquery ด้วย NOT IN เพื่อหาแถวในตารางที่สองที่ไม่มีในตารางแรก
สร้างตาราง PresentHistory (2 แถว) และ PastHistory (4 แถว รวม 2 แถวซ้ำ และ 2 แถวใหม่):
mysql> CREATE TABLE PresentHistory ( HisID int, HisName varchar(100) ); mysql> INSERT INTO PresentHistory VALUES (1,'John'), (2,'Bob'); mysql> CREATE TABLE PastHistory ( PastId int, PastName varchar(100) ); mysql> INSERT INTO PastHistory VALUES (1,'John'), (2,'Bob'), (3,'Carol'), (4,'Jason');
Query หาแถวใน PastHistory ที่ไม่มีใน PresentHistory
SELECT * FROM PastHistory WHERE PastName NOT IN (SELECT HisName FROM PresentHistory);
ผลลัพธ์:
+--------+----------+ | PastId | PastName | +--------+----------+ | 3 | Carol | | 4 | Jason | +--------+----------+
หมายเหตุ: หาก Subquery คืนค่า NULL จะต้องระวัง เพราะ NOT IN (NULL) จะคืนค่าว่างเปล่า ควรใช้ NOT EXISTS แทนเพื่อความปลอดภัย