Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

लेफ्ट जॉइन / IS NULL उन रिकॉर्ड्स को कैसे खत्म करता है जो एक टेबल में होते हैं और दूसरे में नहीं?

इसे निम्नलिखित द्वारा समझाया जा सकता है

mysql> select * from table1 ;
+------+------+
| id   | val  |
+------+------+
|    1 |   10 |
|    2 |   30 |
|    3 |   40 |
+------+------+
3 rows in set (0.00 sec)

mysql> select * from table2 ;
+------+------+
| id   | t1id |
+------+------+
|    1 |    1 |
|    2 |    2 |
+------+------+
2 rows in set (0.00 sec)

यहां table1.id <-> table2.t1id

अब जब हम left join . करते हैं ज्वाइनिंग की के साथ और यदि लेफ्ट टेबल टेबल 1 है तो उसे टेबल 1 से सभी डेटा मिल जाएगा और टेबल 2 पर गैर-मिलान रिकॉर्ड में शून्य पर सेट हो जाएगा

mysql> select t1.* , t2.t1id from table1 t1 
left join table2 t2 on t2.t1id = t1.id ;
+------+------+------+
| id   | val  | t1id |
+------+------+------+
|    1 |   10 |    1 |
|    2 |   30 |    2 |
|    3 |   40 | NULL |
+------+------+------+

3 rows in set (0.00 sec)

देखें कि table1.id =3 का तालिका 2 में कोई मान नहीं है, इसलिए इसे शून्य के रूप में सेट किया गया है जब आप जहां शर्त लागू करते हैं तो यह आगे फ़िल्टरिंग करेगा

mysql> select t1.* , t2.t1id from table1 t1 
left join table2 t2 on t2.t1id = t1.id where t2.t1id is null;
+------+------+------+
| id   | val  | t1id |
+------+------+------+
|    3 |   40 | NULL |
+------+------+------+
1 row in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैक ओएस एक्स पर mysql मणि स्थापित नहीं कर सकता

  2. मैं MySQL में रिवर्स ऑर्डर में पंक्तियों का चयन कैसे कर सकता हूं?

  3. MySQL Django की स्वचालित आईडी का उपयोग करके 'फ़ील्ड सूची' त्रुटि में एक अज्ञात कॉलम 'user.id' देता है

  4. चैट के लिए डीबी स्कीमा?

  5. MySQL डेटाबेस में खोजते समय '%' चिह्न का मिलान करें