समाधान
टेबल A और B पर LEFT JOIN का उपयोग करें, जहां B में मेल नहीं खाता वहां के रिकॉर्ड टेबल C में डालें।
उदाहरण
टेबल A (demo20):
mysql> CREATE TABLE demo20 (id INT, name VARCHAR(20)); mysql> INSERT INTO demo20 VALUES (100,'John'), (101,'Bob'), (102,'Mike'), (103,'Carol');
टेबल B (demo21):
mysql> CREATE TABLE demo21 (id INT, name VARCHAR(20)); mysql> INSERT INTO demo21 VALUES (100,'Sam'), (101,'Adam'), (133,'Bob'), (145,'David');
टेबल C (demo22):
mysql> CREATE TABLE demo22 (id INT, name VARCHAR(20));
इंसर्ट क्वेरी
mysql> 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;
परिणाम
mysql> SELECT * FROM demo22; +------+-------+ | id | name | +------+-------+ | 102 | Mike | | 103 | Carol | +------+-------+
तर्क: LEFT JOIN A की सभी पंक्तियाँ रखता है। WHERE tbl2.id IS NULL केवल उन पंक्तियों को चुनता है जिनका B में कोई मेल नहीं है।