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

MySQL में SELF JOIN का उपयोग कैसे करें?


MySQL में SELF JOIN का उपयोग करना

SELF JOIN में एक टेबल को स्वयं से जोड़ा जाता है, आमतौर पर पदानुक्रमित डेटा या तुलना के लिए।

उदाहरण

टेबल बनाएं:

mysql> create table SelfJoinDemo (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> CountryName varchar(20),
    -> CountryRank int,
    -> `Year` varchar(10)
    -> );

डेटा डालें:

mysql> insert into SelfJoinDemo(CountryName, CountryRank, `Year`) values('US', 1, '2016');
mysql> insert into SelfJoinDemo(CountryName, CountryRank, `Year`) values('UK', 5, '2013');
mysql> insert into SelfJoinDemo(CountryName, CountryRank, `Year`) values('France', 45, '2010');
mysql> insert into SelfJoinDemo(CountryName, CountryRank, `Year`) values('Turkey', 3, '2000');
mysql> insert into SelfJoinDemo(CountryName, CountryRank, `Year`) values('Japan', 78, '1995');
mysql> insert into SelfJoinDemo(CountryName, CountryRank, `Year`) values('Romania', 110, '2007');
mysql> insert into SelfJoinDemo(CountryName, CountryRank, `Year`) values('UK', 3, '2000');

SELF JOIN क्वेरी: US के समान वर्ष वाले देश ढूंढें:

mysql> SELECT DISTINCT t1.CountryName, t2.Year
    -> FROM SelfJoinDemo AS t1, SelfJoinDemo AS t2
    -> WHERE t1.Year = t2.Year AND t1.CountryName = 'US';

परिणाम:

+-------------+------+
| CountryName | Year |
+-------------+------+
| US          | 2016 |
+-------------+------+

आधुनिक JOIN सिंटैक्स (अनुशंसित)

SELECT DISTINCT t1.CountryName, t2.Year
FROM SelfJoinDemo t1
INNER JOIN SelfJoinDemo t2 ON t1.Year = t2.Year
WHERE t1.CountryName = 'US';

SELF JOIN के सामान्य उपयोग

  • कर्मचारी-प्रबंधक पदानुक्रम: कर्मचारी टेबल को स्वयं से जोड़कर प्रबंधक ढूंढना
  • तुलना: समान टेबल में पंक्तियों की तुलना (जैसे समान वर्ष, समान श्रेणी)
  • पदानुक्रमित डेटा: श्रेणी/उपश्रेणी, संगठन चार्ट

कर्मचारी-प्रबंधक उदाहरण

SELECT e.Name AS Employee, m.Name AS Manager
FROM Employees e
LEFT JOIN Employees m ON e.ManagerId = m.Id;
  1. - MySQL SELECT क्वेरी में ALIAS (उपनाम) कैसे उपयोग करें

    AS कीवर्ड के साथ कॉलम और टेबल का उपनाम देना MySQL में कॉलम या टेबल को अस्थायी नाम (उपनाम) देने के लिए AS कीवर्ड का उपयोग करें। यह वैकल्पिक है लेकिन पठनीयता बढ़ाता है। टेबल और डेटा CREATE TABLE DemoTable ( Name VARCHAR(100) ); Query OK, 0 rows affected (0.51 sec) INSERT INTO DemoTable VALUES(

  1. - MySQL में @ चिह्न (उपयोगकर्ता-परिभाषित चर) का उपयोग करें

    MySQL में @ चिह्न **उपयोगकर्ता-परिभाषित चर (user-defined variables)** को दर्शाता है। ये चर सत्र-विशिष्ट (session-specific) होते हैं और एक कनेक्शन के भीतर मानों को अस्थायी रूप से संग्रहीत करके क्वेरी के बीच साझा करने की अनुमति देते हैं। सिंटैक्स SET @variable_name := value; या SELECT में असाइनमेंट:

  1. - MySQL क्वेरी में COUNT के साथ CASE शर्त का उपयोग कैसे करें

    COUNT() के अंदर CASE WHEN का उपयोग करके सशर्त गिनती MySQL में इसके लिए CASE WHEN का उपयोग करें और COUNT() मेथड के अंदर CASE शर्त सेट करें। पहले टेबल बनाएं: create table DemoTable1374 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.61 sec) रि