हम MySQL CROSS JOIN और INNER JOIN के बीच केवल जॉइन-प्रेडिकेट यानी निर्दिष्ट शर्त के आधार पर अंतर कर सकते हैं। INNER JON के लिए क्वेरी लिखते समय हमें शर्त निर्दिष्ट करने की आवश्यकता होती है लेकिन इसके विपरीत, CROSS JOIN के लिए क्वेरी लिखते समय हमें शर्त निर्दिष्ट करने की आवश्यकता नहीं होती। इसे समझने के लिए, हम tbl_1 और tbl_2 नाम की दो टेबल का उदाहरण ले रहे हैं जिनमें निम्न डेटा है:
mysql> Select * from tbl_1; +----+--------+ | Id | Name | +----+--------+ | 1 | Gaurav | | 2 | Rahul | | 3 | Raman | | 4 | Aarav | +----+--------+ 4 rows in set (0.00 sec) mysql> Select * from tbl_2; +----+---------+ | Id | Name | +----+---------+ | A | Aarav | | B | Mohan | | C | Jai | | D | Harshit | +----+---------+ 4 rows in set (0.00 sec)
अब, INNER JOIN के लिए क्वेरी निम्नानुसार हो सकती है:
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+----+ | id | id | +----+----+ | 4 | A | +----+----+ 1 row in set (0.00 sec)
अब, यदि हम उपरोक्त क्वेरी को बिना शर्त निर्दिष्ट किए लिखेंगे तो यह CROSS JOIN बन जाएगी। बिना शर्त वाली क्वेरी निम्नानुसार है:
mysql> Select tbl_1.id, tbl_2.id FROM tbl_1 JOIN tbl_2; +----+----+ | id | id | +----+----+ | 1 | A | | 2 | A | | 3 | A | | 4 | A | | 1 | B | | 2 | B | | 3 | B | | 4 | B | | 1 | C | | 2 | C | | 3 | C | | 4 | C | | 1 | D | | 2 | D | | 3 | D | | 4 | D | +----+----+ 16 rows in set (0.00 sec)