Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में दो SELECT स्टेटमेंट का उपयोग करके पहली टेबल से दूसरी टेबल में मान डालें

पहली टेबल से दूसरी टेबल में दो SELECT स्टेटमेंट का उपयोग करके मान डालने के लिए SUBQUERY का उपयोग करें। यह आपको केवल एक MySQL क्वेरी का उपयोग करके दूसरी टेबल में परिणाम प्राप्त करने की अनुमति देगा। आइए पहले एक टेबल बनाते हैं:

mysql> create table DemoTable1 ( 
    Name varchar(100), 
    Score int ); 
Query OK, 0 rows affected (1.30 sec)

इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

mysql> insert into DemoTable1 values('Chris',45); 
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1 values('Bob',78); 
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1 values('David',98); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1 values('Carol',89); 
Query OK, 1 row affected (0.15 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable1;

यह निम्नलिखिक आउटपुट देगा:

+-------+-------+
| Name  | Score |
+-------+-------+
| Chris | 45    |
| Bob   | 78    |
| David | 98    |
| Carol | 89    |
+-------+-------+
4 rows in set (0.00 sec)

दूसरी टेबल बनाने की क्वेरी

mysql> create table DemoTable2 ( 
    StudentName varchar(100), 
    StudentScore int ); 
Query OK, 0 rows affected (0.58 sec)

पहली टेबल से दूसरी टेबल में दो SELECT स्टेटमेंट का उपयोग करके मान डालने की क्वेरी

mysql> insert into DemoTable2(StudentName,StudentScore) values((select Name from DemoTable1 where Score=98),(select Score from DemoTable1 where Name='David')); 
Query OK, 1 row affected (0.30 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable2; 
+-------------+--------------+
| StudentName | StudentScore |
+-------------+--------------+
| David       | 98           |
+-------------+--------------+
1 row in set (0.00 sec)

व्याख्या

  • पहला सबक्वेरी: SELECT Name FROM DemoTable1 WHERE Score=98 → 'David' लौटाता है
  • दूसरा सबक्वेरी: SELECT Score FROM DemoTable1 WHERE Name='David' → 98 लौटाता है
  • दोनों मान VALUES(...) में उपयोग किए जाते हैं
  • प्रत्येक सबक्वेरी को एकल मान (स्केलर) लौटाना चाहिए

बेहतर विकल्प: INSERT ... SELECT

INSERT INTO DemoTable2 (StudentName, StudentScore)
SELECT Name, Score FROM DemoTable1 WHERE Score = 98;

यह अधिक कुशल और मानक तरीका है।

  1. - MySQL में INSERT INTO SELECT UNION ALL से एक क्वेरी में दो टेबल में चयन और सम्मिलन

    MySQL में INSERT INTO ... SELECT ... UNION ALL ... SELECT का उपयोग करके एक ही क्वेरी में एक टेबल से डेटा चुनकर दूसरी टेबल में एकाधिक पंक्तियां डाल सकते हैं। उदाहरण 1. लक्ष्य टेबल बनाएं ); 2. स्रोत टेबल बनाएं INSERT INTO DemoTable2 VALUES(Chris); 3. एक क्वेरी में चयन और सम्मिलन SELECT Name, 98

  1. - MySQL में टेबल में मौजूद न होने वाले मानों को कैसे क्वेरी करें?

    MySQL में किसी टेबल में मौजूद नहीं होने वाले मानों को खोजने के लिए, UNION ALL के साथ WHERE NOT EXISTS या NOT IN का उपयोग करें। यह गैप विश्लेषण या मिसिंग सीक्वेंस खोजने के लिए उपयोगी है। उदाहरण: मिसिंग ऑटो-इन्क्रीमेंट मान खोजना ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql> CREATE TABLE DemoTable1918 (

  1. - MySQL में INSERT INTO SELECT से दूसरी टेबल के मान लेकर नई टेबल भरें

    सिंटैक्स insert into targetTable(col1, col2) select sourceCol1, sourceCol2 from sourceTable where condition; उदाहरण insert into demo83(id,username) select id,name from demo82 where id=101; परिणाम +------+----------+ | id | username | +------+----------+ | 101 | Bob | | 101 | David |