MySQL क्रॉस जॉइन कीवर्ड
एसक्यूएल क्रॉस जॉइन कीवर्ड
CROSS JOIN
कीवर्ड दोनों तालिकाओं (तालिका 1 और तालिका 2) से सभी रिकॉर्ड लौटाता है ।
क्रॉस जॉइन सिंटेक्स
SELECT column_name(s)
FROM table1
CROSS JOIN table2;
नोट: CROSS JOIN
संभावित रूप से बहुत बड़े परिणाम-सेट लौटा सकते हैं!
डेमो डेटाबेस
इस ट्यूटोरियल में हम प्रसिद्ध नॉर्थविंड नमूना डेटाबेस का उपयोग करेंगे।
नीचे "ग्राहक" तालिका से चयन है:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
और "आदेश" तालिका से चयन:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
MySQL क्रॉस जॉइन उदाहरण
निम्न SQL कथन सभी ग्राहकों और सभी आदेशों का चयन करता है:
उदाहरण
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;
नोट: कीवर्ड दोनों तालिकाओं से सभी मिलान करने वाले रिकॉर्ड लौटाता है चाहे CROSS JOIN
अन्य तालिका मेल खाती हो या नहीं। इसलिए, यदि "ग्राहकों" में ऐसी पंक्तियाँ हैं जिनका "आदेश" में मिलान नहीं है, या यदि "आदेश" में ऐसी पंक्तियाँ हैं जिनका "ग्राहकों" में मिलान नहीं है, तो उन पंक्तियों को भी सूचीबद्ध किया जाएगा।
यदि आप एक WHERE
खंड जोड़ते हैं (यदि तालिका 1 और तालिका 2 का संबंध है), तो खंड CROSS JOIN
के समान परिणाम देगा INNER JOIN
:
उदाहरण
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;