Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chèn dữ liệu vào bảng C nếu không tồn tại trong bảng B so với bảng A (LEFT JOIN) trong MySQL

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.