MySQL में मल्टी-टेबल UPDATE के साथ मिलान ID पर डेटा कॉपी करना
MySQL में UPDATE स्टेटमेंट में एकाधिक तालिकाओं को जोड़कर (JOIN सिंटैक्स के साथ) एक तालिका से दूसरी तालिका में मिलान ID के आधार पर मान कॉपी किए जा सकते हैं।
व्यावहारिक उदाहरण
स्रोत तालिका बनाना (DemoTable1)
mysql> CREATE TABLE DemoTable1 (
PersonId INT,
Value INT
);
स्रोत डेटा डालना
mysql> INSERT INTO DemoTable1 VALUES(100, 78); mysql> INSERT INTO DemoTable1 VALUES(101, 67); mysql> INSERT INTO DemoTable1 VALUES(102, 89);
लक्ष्य तालिका बनाना (DemoTable2)
mysql> CREATE TABLE DemoTable2 (
StudentId INT,
StudentScore INT
);
लक्ष्य डेटा डालना (NULL स्कोर के साथ)
mysql> INSERT INTO DemoTable2 VALUES(100, NULL); mysql> INSERT INTO DemoTable2 VALUES(102, NULL);
कॉपी करने से पहले देखना
mysql> SELECT * FROM DemoTable2;
आउटपुट:
+-----------+--------------+ | StudentId | StudentScore | +-----------+--------------+ | 100 | NULL | | 102 | NULL | +-----------+--------------+
मिलान ID पर मान कॉपी करने के लिए UPDATE JOIN
mysql> UPDATE DemoTable1, DemoTable2 SET DemoTable2.StudentScore = DemoTable1.Value WHERE DemoTable2.StudentId = DemoTable1.PersonId;
आउटपुट: Query OK, 2 rows affected
कॉपी करने के बाद देखना
mysql> SELECT * FROM DemoTable2;
आउटपुट:
+-----------+--------------+ | StudentId | StudentScore | +-----------+--------------+ | 100 | 78 | | 102 | 89 | +-----------+--------------+
आधुनिक JOIN सिंटैक्स (अनुशंसित)