ใช้ LEFT OUTER JOIN ร่วมกับ WHERE right_table.id IS NULL เพื่อหา ID ที่อยู่ในตารางซ้ายแต่อยู่ในตารางขวา
ตัวอย่างการใช้งาน
ตารางแรก (First_Table)
mysql> create table First_Table (Id int); mysql> INSERT INTO First_Table VALUES (1),(2),(3),(4);
+------+ | Id | +------+ | 1 | | 2 | | 3 | | 4 | +------+
ตารางที่สอง (Second_Table)
mysql> create table Second_Table (Id int); mysql> INSERT INTO Second_Table VALUES (2),(4);
+------+ | Id | +------+ | 2 | | 4 | +------+
คิวรี่หา ID ที่หายไป
mysql> SELECT First_Table.Id FROM First_Table
-> LEFT OUTER JOIN Second_Table ON First_Table.Id = Second_Table.Id
-> WHERE Second_Table.Id IS NULL;
ผลลัพธ์ (ID 1 และ 3 ไม่อยู่ใน Second_Table):
+------+ | Id | +------+ | 1 | | 3 | +------+
การทำงาน
- LEFT JOIN เก็บแถวทั้งหมดจาก First_Table
- จับคู่กับ Second_Table โดย Id
- แถวที่ไม่มีคู่ใน Second_Table จะมีค่า NULL
- WHERE Second_Table.Id IS NULL กรองเฉพาะแถวที่ไม่มีคู่
ประยุกต์ใช้: หาข้อมูล孤儿 (Orphan records), Sync ข้อมูลระหว่างระบบ, Audit