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

सेल्फ जॉइन को समझना

सेल्फ जॉइन एक इनर जॉइन की तरह है जहां एक ही टेबल के दो या दो से अधिक इंस्टेंसेस को एक कॉमन डेटा टाइप कॉलम / फील्ड के जरिए एक साथ जोड़ा जाता है। इस तरह के जॉइन (इनर जॉइन) जॉइनिंग कंडीशन के आधार पर परिणाम के रूप में कॉमन रो देता है।

कर्मचारी तालिका में तीन रिकॉर्ड होते हैं। इस मामले में,

कर्मचारी के रूप में:

+-----+---------------+------------+
| id  | employee      | manager_id |
+-----+---------------+------------+
| 1   | Ola           |   NULL     |
| 2   | Ahmed         |    1       |
| 3   | Tove          |    1       |
+----------+----------+------------+

प्रबंधक के रूप में कर्मचारी:

+-----+---------------+------------+
| id  | employee      | manager_id |
+-----+---------------+------------+
| 1   | Ola           |   NULL     |
| 2   | Ahmed         |    1       |
| 3   | Tove          |    1       |
+----------+----------+------------+

अब पहला मामला:अंतर को समझने के लिए इसे आजमाएं:

चुनें emp.* , manager.* कर्मचारी से emp, कर्मचारी के रूप में प्रबंधकWHERE emp.id =Manager.manager_id

+-----+---------------+------------+-----+---------------+------------+
| id  | employee      | manager_id | id  | employee      | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 1   | Ola           |   NULL     | 2   | Ahmed         |    1       |
| 1   | Ola           |   NULL     | 3   | Tove          |    1       |
+----------+----------+------------+----------+----------+------------+

देखें, emp.id =manager.manager_id । इस प्रकार, NAME के ​​रूप में कर्मचारी पहली तालिका से ओला की पंक्तियाँ दे रहा है और प्रबंधक के रूप में कर्मचारी दूसरी तालिका से अहमद और टोव की पंक्तियाँ दे रहा है।

अब दूसरा मामला:अंतर को समझने के लिए इसे आजमाएं:

चुनें emp.* , manager.* कर्मचारी से emp, कर्मचारी के रूप में प्रबंधकWHERE manager.id =emp.manager_id

+-----+---------------+------------+-----+---------------+------------+
| id  | employee      | manager_id | id  | employee      | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 2   | Ahmed         |    1       | 1   | Ola           |   NULL     |  
| 3   | Tove          |    1       | 1   | Ola           |   NULL     |
+----------+----------+------------+----------+----------+------------+

देखें, Manager.id =emp.manager_id । इस प्रकार, NAME के ​​रूप में कर्मचारी पहली तालिका से अहमद और टोव की पंक्तियाँ दे रहा है और प्रबंधक के रूप में कर्मचारी दूसरी तालिका से ओला की पंक्तियाँ दे रहा है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं LIMIT क्लॉज में बड़ी ऑफसेट के साथ MySQL क्वेरी को कैसे तेज कर सकता हूं?

  2. कौन सी MySQL क्वेरी तेज है?

  3. MySQL में पैरामीटर के रूप में कॉलम नाम पास करना

  4. MySQL का उपयोग करते हुए, मैं एक विशेष पंक्ति के क्वेरी परिणाम रैंक का चयन कैसे करूं?

  5. MYSQL एक वाक्य में दो शब्दों का मिलान कैसे करें