Giới thiệu
Để tìm các bản ghi có trong bảng A nhưng không có trong bảng B (theo khóa), dùng LEFT JOIN và lọc WHERE bangB.khoa IS NULL. Sau đó chèn vào bảng C.
Ví dụ minh họa
Bảng A (demo20): id, name
INSERT INTO demo20 VALUES (100,'John'), (101,'Bob'), (102,'Mike'), (103,'Carol');
Bảng B (demo21): id, name
INSERT INTO demo21 VALUES (100,'Sam'), (101,'Adam'), (133,'Bob'), (145,'David');
Bảng C (demo22): id, name (trống)
Chèn từ A vào C nếu id không có trong B
INSERT INTO demo22 (id, name)
SELECT tbl1.id, tbl1.name
FROM demo20 tbl1
LEFT JOIN demo21 tbl2 ON tbl2.id = tbl1.id
WHERE tbl2.id IS NULL;
Kết quả bảng C
+------+-------+
| id | name |
+------+-------+
| 102 | Mike |
| 103 | Carol |
+------+-------+
Giải thích: ID 100, 101 có trong cả A và B → không chèn. ID 102, 103 chỉ có trong A → chèn vào C. ID 133, 145 chỉ có trong B → không liên quan.