INSERT ... SELECT सिंटैक्स का उपयोग करके एक टेबल से दूसरी टेबल में शर्त के आधार पर पंक्तियाँ कॉपी करें।
सिंटैक्स
INSERT INTO table2(col1, col2, ...)
SELECT col1, col2, ... FROM table1 WHERE condition;
पहली टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable1 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(40)
);
Query OK, 0 rows affected (0.88 sec)
mysql> INSERT INTO DemoTable1(Name) VALUES('Chris'),('David'),('Bob');
दूसरी टेबल बनाना
mysql> CREATE TABLE DemoTable2 (
ClientId INT,
ClientFirstName VARCHAR(20)
);
Query OK, 0 rows affected (0.60 sec)
नेस्टेड INSERT SELECT (आईडी 2 को छोड़कर)
mysql> INSERT INTO DemoTable2(ClientId, ClientFirstName)
SELECT Id, Name FROM DemoTable1 WHERE Id != 2;
Query OK, 2 rows affected (0.17 sec)
दूसरी टेबल देखना
mysql> SELECT * FROM DemoTable2;
आउटपुट:
+----------+-----------------+
| ClientId | ClientFirstName |
+----------+-----------------+
| 1 | Chris |
| 3 | Bob |
+----------+-----------------+
2 rows in set (0.00 sec)
नोट: कॉलम क्रम और प्रकार संगत होने चाहिए। AUTO_INCREMENT कॉलम को स्पष्ट रूप से मान प्रदान न करें जब तक कि SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO' सेट न हो।