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

MySQL में LEFT JOIN से MINUS क्वेरी का अनुकरण कैसे करें

MySQL MINUS (या EXCEPT) ऑपरेटर सपोर्ट नहीं करता, लेकिन LEFT JOIN ... WHERE IS NULL पैटर्न से समान परिणाम प्राप्त कर सकते हैं। यह "पहली टेबल में मौजूद लेकिन दूसरी में नहीं" वाली पंक्तियाँ ढूंढता है।

उदाहरण: दो छात्र टेबल्स

Student_detail (7 पंक्तियाँ) और Student_info (6 पंक्तियाँ):

mysql> SELECT * FROM Student_detail;
+-----------+---------+------------+------------+
| studentid | Name    | Address    | Subject    |
+-----------+---------+------------+------------+
| 101       | YashPal | Amritsar   | History    |
| 105       | Gaurav  | Chandigarh | Literature |
| 130       | Ram     | Jhansi     | Computers  |
| 132       | Shyam   | Chandigarh | Economics  |
| 133       | Mohan   | Delhi      | Computers  |
| 150       | Rajesh  | Jaipur     | Yoga       |
| 160       | Pradeep | Kochi      | Hindi      |
+-----------+---------+------------+------------+

mysql> SELECT * FROM Student_info;
+-----------+-----------+------------+-------------+
| studentid | Name      | Address    | Subject     |
+-----------+-----------+------------+-------------+
| 101       | YashPal   | Amritsar   | History     |
| 105       | Gaurav    | Chandigarh | Literature  |
| 130       | Ram       | Jhansi     | Computers   |
| 132       | Shyam     | Chandigarh | Economics   |
| 133       | Mohan     | Delhi      | Computers   |
| 165       | Abhimanyu | Calcutta   | Electronics |
+-----------+-----------+------------+-------------+

क्वेरी 1: Student_info में है लेकिन Student_detail में नहीं

mysql> SELECT studentid 
FROM student_info 
LEFT JOIN Student_detail USING(studentid) 
WHERE student_detail.studentid IS NULL;
+-----------+
| studentid |
+-----------+
| 165       |
+-----------+

क्वेरी 2: Student_detail में है लेकिन Student_info में नहीं

mysql> SELECT studentid 
FROM student_detail 
LEFT JOIN Student_info USING(studentid) 
WHERE student_info.studentid IS NULL;
+-----------+
| studentid |
+-----------+
| 150       |
| 160       |
+-----------+

पैटर्न समझ

SELECT t1.कॉलम
FROM टेबल1 t1
LEFT JOIN टेबल2 t2 ON t1.कुंजी = t2.कुंजी
WHERE t2.कुंजी IS NULL;

यह टेबल1 - टेबल2 (MINUS) के बराबर है।

बहु-कॉलम तुलना के लिए

SELECT t1.*
FROM टेबल1 t1
LEFT JOIN टेबल2 t2 
  ON t1.col1 = t2.col1 AND t1.col2 = t2.col2 ...
WHERE t2.col1 IS NULL;
  1. - MySQL में बूलियन मान कैसे अपडेट करें?

    बूलियन मान अपडेट करने के लिए UPDATE कमांड का उपयोग करें। MySQL में BOOLEAN डेटा टाइप आंतरिक रूप से TINYINT(1) में बदल जाता है जहां true = 1 और false = 0 होता है। सिंटैक्स UPDATE yourTableName SET yourColumnName = yourValue WHERE yourCondition; उदाहरण के साथ समझें सबसे पहले एक टेबल बनाते हैं: )

  1. - MySQL क्लाइंट द्वारा उपयोग की गई कनेक्शन विधि कैसे निर्धारित करें?

    MySQL कनेक्शन द्वारा उपयोग की गई विधि निर्धारित करने के तरीके: 1. netstat से (OS स्तर) netstat -ln | grep mysql 2. mysql CLI के अंदर (\s कमांड) \s # आउटपुट उदाहरण: Connection: 127.0.0.1 via TCP/IP # या Connection: Localhost via UNIX socket TCP/IP कनेक्शन बाध्य करना (लोकल सर्वर) mysql --protocol

  1. - MySQL में SELECT क्वेरी परिणाम को क्रमबद्ध करना (ORDER BY)

    टेबल से डेटा चुनते समय पंक्तियाँ टेबल में मौजूद क्रम में आती हैं। विशिष्ट क्रम में प्राप्त करने के लिए ORDER BY उपयोग करें। सिंटैक्स आरोही क्रम (डिफ़ॉल्ट): SELECT * FROM table_name ORDER BY column_name अवरोही क्रम: SELECT * FROM table_name ORDER BY column_name DESC Python में MySQL से क्रमबद्ध डेट