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 के साथ उपयोग करें।