समाधान: CREATE TABLE ... SELECT ... UNION
दो टेबल के डेटा को मर्ज करके एक नई टेबल बनाने के लिए UNION के साथ CREATE TABLE ... SELECT का उपयोग करें।
सिंटैक्स
CREATE TABLE yourNewTableName (SELECT * FROM yourTableName1) UNION (SELECT * FROM yourTableName2);
व्यावहारिक उदाहरण
दो टेबल बनाना
mysql> CREATE TABLE Old_TableDemo (
-> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName VARCHAR(20)
-> );
mysql> CREATE TABLE Old_TableDemo2 (
-> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName VARCHAR(20)
-> );
पहली टेबल में डेटा
mysql> INSERT INTO Old_TableDemo(UserName) VALUES('John'), ('Carol');
mysql> SELECT * FROM Old_TableDemo;
+--------+----------+
| UserId | UserName |
+--------+----------+
| 1 | John |
| 2 | Carol |
+--------+----------+
दूसरी टेबल में डेटा
mysql> INSERT INTO Old_TableDemo2(UserName) VALUES('Larry'), ('Sam');
mysql> SELECT * FROM Old_TableDemo2;
+--------+----------+
| UserId | UserName |
+--------+----------+
| 1 | Larry |
| 2 | Sam |
+--------+----------+
UNION के साथ नई टेबल बनाना
mysql> CREATE TABLE UserTableDemo
-> (SELECT * FROM Old_TableDemo)
-> UNION
-> (SELECT * FROM Old_TableDemo2);
Query OK, 4 rows affected (1.18 sec)
नई टेबल का डेटा
mysql> SELECT * FROM UserTableDemo; +--------+----------+ | UserId | UserName | +--------+----------+ | 1 | John | | 2 | Carol | | 1 | Larry | | 2 | Sam | +--------+----------+
महत्वपूर्ण नोट्स
UNIONडुप्लीकेट पंक्तियों को हटा देता है (सभी कॉलम समान होने पर)UNION ALLडुप्लीकेट रखता है - तेज़ होता है- दोनों SELECT में कॉलम संख्या और क्रम समान होना चाहिए
- नई टेबल में AUTO_INCREMENT नहीं होगा (स्पष्ट रूप से परिभाषित करें यदि आवश्यक)