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

MySQL में ON कंडीशन के बिना JOIN कैसे उपयोग करें?

CROSS JOIN का उपयोग करके ON क्लॉज के बिना जॉइन कर सकते हैं। यह कार्टेशियन प्रोडक्ट (प्रत्येक पंक्ति का प्रत्येक पंक्ति से मेल) देता है।

उदाहरण सेटअप

-- टेबल 1
CREATE TABLE ForeignTableDemo (Id INT, Name VARCHAR(100), FK INT);

-- टेबल 2
CREATE TABLE PrimaryTableDemo (FK INT PRIMARY KEY, Address VARCHAR(100));

-- फॉरेन की (वैकल्पिक, CROSS JOIN के लिए जरूरी नहीं)
ALTER TABLE ForeignTableDemo 
ADD CONSTRAINT FKConst FOREIGN KEY (FK) REFERENCES PrimaryTableDemo(FK);

-- डेटा
INSERT INTO PrimaryTableDemo VALUES (1,'US'), (2,'UK'), (3,'Unknown');
INSERT INTO ForeignTableDemo VALUES (1,'John',1), (2,'Bob',2);

CROSS JOIN

SELECT f.Id, f.Name, p.Address
FROM ForeignTableDemo f
CROSS JOIN PrimaryTableDemo p;

आउटपुट (2 × 3 = 6 पंक्तियाँ):

+------+------+---------+
| Id   | Name | Address |
+------+------+---------+
| 1    | John | US      |
| 2    | Bob  | US      |
| 1    | John | UK      |
| 2    | Bob  | UK      |
| 1    | John | Unknown |
| 2    | Bob  | Unknown |
+------+------+---------+

INNER JOIN तुलना (ON के साथ)

SELECT f.Id, f.Name, p.Address
FROM ForeignTableDemo f
JOIN PrimaryTableDemo p ON f.FK = p.FK;

आउटपुट (केवल मेल खाने वाली 2 पंक्तियाँ):

+------+------+---------+
| Id   | Name | Address |
+------+------+---------+
| 1    | John | US      |
| 2    | Bob  | UK      |
+------+------+---------+

CROSS JOIN के उपयोग मामले

  • रिपोर्ट के लिए सभी संयोजन जनरेट करना (तारीख × उत्पाद × स्टोर)
  • टेस्ट डेटा बनाना
  • मैट्रिक्स/ग्रिड गणना
  • CROSS JOIN = INNER JOIN ON 1=1 (MySQL में समानार्थी)

सावधानी

बड़े टेबल पर CROSS JOIN भारी परिणाम सेट बना सकता है (N × M पंक्तियाँ)। हमेशा LIMIT या WHERE के साथ उपयोग करें।

  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) रि

  1. - MySQL में SELECT स्टेटमेंट में IF/ELSE शर्त का उपयोग कैसे करें?

    MySQL में IF() फ़ंक्शन और CASE WHEN का उपयोग करके सशर्त तर्क MySQL SELECT स्टेटमेंट में सशर्त तर्क के लिए दो मुख्य तरीके प्रदान करता है: सरल IF() फ़ंक्शन और अधिक शक्तिशाली CASE WHEN अभिव्यक्ति। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) डेटा डालना INSERT INTO DemoTable1966(UserName, Phot