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

MySQL में दो टेबल से समान ID वाले रिकॉर्ड कैसे प्राप्त करें?

MySQL IN सबक्वेरी: दो टेबल में सामान्य ID खोजना

WHERE column IN (SELECT ...) पैटर्न का उपयोग करके एक टेबल के ID के आधार पर दूसरी टेबल से मिलते-जुलते रिकॉर्ड प्राप्त कर सकते हैं।

उदाहरण: DemoTable1 के ID जो DemoTable2 में भी हैं

पहली टेबल (केवल ID):

CREATE TABLE DemoTable1 (Id INT);
INSERT INTO DemoTable1 VALUES (100), (110), (4), (3);

दूसरी टेबल (ID + Name):

CREATE TABLE DemoTable2 (Id INT, Name VARCHAR(50));
INSERT INTO DemoTable2 VALUES (4, 'Chris'), (1, 'David'), (110, 'Adam'), (210, 'Bob');

सामान्य ID वाले रिकॉर्ड प्राप्त करें

SELECT Id, Name FROM DemoTable2 
WHERE Id IN (SELECT Id FROM DemoTable1);

परिणाम:

+------+-------+
| Id   | Name  |
+------+-------+
| 110  | Adam  |
| 4    | Chris |
+------+-------+

वैकल्पिक: INNER JOIN (अक्सर तेज)

SELECT d2.Id, d2.Name 
FROM DemoTable2 d2
INNER JOIN DemoTable1 d1 ON d2.Id = d1.Id;

IN vs JOIN

पहलूIN (सबक्वेरी)INNER JOIN
पठनीयतासरल, घोषणात्मकथोड़ा जटिल
प्रदर्शनMySQL 8.0+ में समानआमतौर पर बेहतर/समान
डुप्लिकेटस्वचालित रूप से अलगडुप्लिकेट रखता है (DISTINCT जोड़ें)
NULL मानNOT IN में समस्यासुरक्षित

NOT IN के साथ सावधानी


            
  1. - MySQL में GROUP BY और MAX का उपयोग करके समान नाम वाले छात्रों की अधिकतम आयु प्राप्त करें

    MySQL में GROUP BY और MAX() का उपयोग करके प्रति समूह अधिकतम मान खोजना जब आपके पास डुप्लिकेट नाम (या अन्य समूहन कॉलम) हों और आप प्रत्येक समूह के लिए अधिकतम मान खोजना चाहते हैं, तो GROUP BY के साथ MAX() एग्रीगेट फ़ंक्शन का उपयोग करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) डुप्लिकेट नाम

  1. - MySQL में 5 टेबल से 'UP' कॉलम का योग निकालना

    UNION ALL और SUM() के साथ कई टेबल से योग की गणना समान कॉलम नाम UP वाले 5 टेबल से कुल योग निकालने के लिए UNION ALL का उपयोग करें। पहले 5 टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1977 ( UP int ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1977 values(10); ...

  1. - MySQL में टेबल जोड़कर (JOIN) मान कैसे प्राप्त करें?

    JOIN का उपयोग दो टेबल को सामान्य कॉलम (PK-FK) पर जोड़ें। टेबल 1: demo52 insert into demo52 values(1,John), (2,David), (3,Mike); टेबल 2: demo53 (FK से demo52) insert into demo53 values(1,23), (2,22), (3,26); JOIN क्वेरी SELECT name FROM demo52 t1 JOIN demo53 t2 ON t1.id=t2.id WHERE t1.id=1; +-