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

MySQL में CROSS JOIN का सही उपयोग

CROSS JOIN दो टेबल्स (या एक ही टेबल के दो सबसेट) का कार्टेशियन गुणनफल लौटाता है।

एक टेबल बनाते हैं:

CREATE TABLE PairDemo (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName VARCHAR(20),
    UserRelationshipName VARCHAR(20)
);

रिकॉर्ड डालें:

INSERT INTO PairDemo (UserName, UserRelationshipName) VALUES ('John', 'James');
INSERT INTO PairDemo (UserName, UserRelationshipName) VALUES ('Carol', 'James');
INSERT INTO PairDemo (UserName, UserRelationshipName) VALUES ('Carol', 'David');
INSERT INTO PairDemo (UserName, UserRelationshipName) VALUES ('Sam', 'David');

सभी रिकॉर्ड देखें:

SELECT * FROM PairDemo;

आउटपुट

+--------+----------+----------------------+
| UserId | UserName | UserRelationshipName |
+--------+----------+----------------------+
| 1      | John     | James                |
| 2      | Carol    | James                |
| 3      | Carol    | David                |
| 4      | Sam      | David                |
+--------+----------+----------------------+

अनुपस्थित संयोजन खोजने के लिए CROSS JOIN का उपयोग:

SELECT U.UserName, UR.UserRelationshipName
FROM (
    (SELECT DISTINCT UserName FROM PairDemo) U
    CROSS JOIN
    (SELECT DISTINCT UserRelationshipName FROM PairDemo) UR
)
WHERE NOT EXISTS (
    SELECT * FROM PairDemo tbl
    WHERE tbl.UserName = U.UserName
      AND tbl.UserRelationshipName = UR.UserRelationshipName
);

आउटपुट

+----------+----------------------+
| UserName | UserRelationshipName |
+----------+----------------------+
| Sam      | James                |
| John     | David                |
+----------+----------------------+

व्याख्या: सभी संभावित (UserName, UserRelationshipName) जोड़े उत्पन्न हुए, फिर मौजूदा जोड़ों को बाहर रखा गया।

  1. - MySQL में WITH ROLLUP का सही उपयोग कैसे करें

    WITH ROLLUP के साथ योग और कुल योग प्राप्त करना WITH ROLLUP का सिंटैक्स: select yourColumnName1, sum(yourColumnName2) from yourTableName group by yourColumnName1 with rollup; पहले टेबल बनाएं: create table DemoTable1622 ( EmployeeCountryName varchar(20), EmployeeSalary int ); Query OK, 0 rows affecte

  1. - MySQL स्टोर्ड प्रोसीजर में शर्तों (IF-ELSE) को सही तरीके से कैसे लागू करें?

    MySQL स्टोर्ड प्रोसीजर में सशर्त तर्क (Conditional Logic) लागू करने के लिए IF-THEN-ELSE स्टेटमेंट का उपयोग किया जाता है। सही सिंटैक्स और डिलिमिटर का ध्यान रखना महत्वपूर्ण है। सही सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name(IN param_name INT) BEGIN IF condition THEN statement1;

  1. - MySQL स्टोर्ड प्रोसीजर में DELIMITER का सही उपयोग कैसे करें?

    MySQL स्टोर्ड प्रोसीजर बनाते समय DELIMITER का सही उपयोग आवश्यक है क्योंकि प्रोसीजर बॉडी में सेमीकॉलन (;) होते हैं जो डिफ़ॉल्ट स्टेटमेंट टर्मिनेटर हैं। सही सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name() BEGIN IF condition THEN statement1; ELSE statement2; END IF;