SQL CROSS JOIN
SQL CROSS JOIN تمام رکوردهای جداول چپ و راست را برمی گرداند. CROSS JOIN ترکیبی از هر ردیف در جدول سمت چپ را با هر ردیف در جدول سمت راست جفت می کند.
CROSS JOIN در SQL
Cross Join در SQL یک مجموعه نتیجه تولید می کند که شامل حاصل ضرب دکارتی دو یا چند جدول است. اتصال متقاطع به آن پیوستن دکارتی نیز گفته می شود .
هنگامی که CROSS JOIN با عبارت WHERE استفاده می شود ، مانند INNER JOIN عمل می کند و نتایج را بر اساس شرایط خاص فیلتر می کند.
CROSS JOIN بهترین انتخاب برای زمانی است که باید هر ردیف از یک جدول را با هر ردیف دیگر از جدول دیگر مطابقت دهیم. در بسیاری از برنامههایی که نیاز داریم ترکیبهای جفتی از رکوردها را بدست آوریم، مفید است.
Cross Join B/W دو ست
نحو
SELECT * FROM table1
CROSS JOIN table2;
SQL CROSS JOIN مثال
بیایید به چند نمونه از دستور CROSS JOIN در SQL نگاه کنیم تا بفهمیم که کار می کند.
پایگاه داده SQL نسخه ی نمایشی
در این آموزش CROSS JOIN از دو جدول زیر به عنوان مثال استفاده خواهیم کرد:
جدول 1- مشتری
شناسه | NAME | سن | تلفن |
---|---|---|---|
1 | آمیت جین | 21 | 98474 |
2 | جاتین ورما | 47 | 63996 |
جدول 2- سفارشات
ORDER_ID | AMOUNT | PLACED_ON |
---|---|---|
101 | 999 | 19-04-2023 |
102 | 4999 | 2023-04-20 |
برای ایجاد هر دو جدول در سیستم خود می توانید کد زیر را بنویسید:
CREATE DATABASE GeeksForGeeks;
USE GeeksForGeeks;
CREATE TABLE CUSTOMER(
ID INT,
NAME VARCHAR(20),
AGE INT,
PHONE INT);
CREATE TABLE ORDERS(
ORDER_ID INT,
AMOUNT INT,
PLACED_ON DATE);
INSERT INTO CUSTOMER VALUES(1,’AMIT JAIN’,21,98474);
INSERT INTO CUSTOMER VALUES(2,’JATIN VERMA’,47,63996);
INSERT INTO ORDERS VALUES(101,999,’2023-04-19′);
INSERT INTO ORDERS VALUES(102,4999,’2023-04-20′);
;
CROSS JOIN مثال
در این مثال از دستور CROSS JOIN برای تطبیق داده های جدول Customer and Orders استفاده می کنیم.
پرس و جو
SELECT * FROM CUSTOMER CROSS JOIN ORDERS;
خروجی
متقاطع بپیوندید
همانطور که می بینیم، آیا جدول دیگر مطابقت دارد یا نه، کلمه کلیدی CROSS JOIN همه رکوردهای مشابه را از هر دو جدول برمی گرداند. بنابراین، اگر ردیفهایی در «مشتریان» یا «سفارشها» وجود داشته باشد که با هیچ ورودی در هر یک از جدولها مطابقت نداشته باشد، آن ردیفها نیز فهرست میشوند.
نکات مهم در مورد CROSS JOIN
- CROSS JOIN محصول متقابل رکوردهای دو یا چند جدول به هم پیوسته را انجام می دهد.
- زمانی استفاده می شود که بخواهیم هر ترکیب ممکنی از ردیف ها در جداول پایگاه داده وجود داشته باشد.
- SQL CROSS JOIN با شرط WHERE Clause به عنوان یک JOIN داخلی عمل می کند. هنگامی که بدون یکی استفاده می شود، حاصل ضرب دکارتی تمام ردیف ها را از تمام جداول ارائه شده در پرس و جو SQL تولید می کند.
- CROSS JOIN با سایر انواع اتصال مانند پیوستن داخلی، پیوستن چپ و RIGHT JOIN متفاوت است ، زیرا نیازی به شرایط تطبیقی بین جداول ندارد.
لینک های مرتبط
- Self Join و Cross Join در MS SQL Server
- تفاوت بین Join داخلی و خارجی در SQL
- تفاوت بین اتصال طبیعی و اتصال داخلی در SQL
- تفاوت بین اتصال طبیعی و اتصال متقاطع در SQL
سوالات متداول در مورد SQL CROSS JOIN
چه زمانی از CROSS JOIN در SQL استفاده کنیم؟
CROSS JOIN در جداول مورد استفاده برای تولید تمام ترکیبات رکوردها. به عنوان مثال، ما دو ستون داریم: اندازه و رنگ، و به یک نتیجه برای نمایش تمام ترکیبهای زوج ممکن از آن ستونها نیاز داریم که در آن CROSS JOIN آمده است.
وقتی یک شرط WHERE در CROSS JOIN مشخص شود چه اتفاقی میافتد؟
در صورتی که شرط WHERE مشخص شده باشد، Cross Join به عنوان یک Join داخلی عمل می کند.
تفاوت CROSS JOIN و Natural Join چیست؟
Natural Join دو جدول را بر اساس نام ویژگی و نوع داده یکسان به هم می پیوندد. Cartesian/CROSS Join محصول دکارتی دو جدول را تولید می کند.
دیدگاهتان را بنویسید