PostgreSQL

سرفصل دروس

Cross Join

مقدمه ای بر CROSS JOIN در PostgreSQL

CROSS JOIN به شما اجازه می دهدد که مجموعه ای از ردیف ها از دو یا چند جدول را تولید نمایید. برخلاف JOIN های دیگر، CROSS JOIN در قسمت ارتباط هیچ شرطی ندارد. به فرض اینکه بخواهیم CROSS JOIN را بر دو جدول T1 و T2 اعمال کنیم، برای هر ردیف از T1 و T2، نتیجه شامل تمام ستون های جدول T1 و در ادامه ستون های جدول T2 می باشد. اگر T1 شامل N ردیف و T2 شامل M ردیف باشد نتیجه شامل N x M ردیف می باشد.  عبارت زیر دستور زبان CROSS JOIN در PostgreSQL  می باشد. 

SELECT * 
FROM T1
CROSS JOIN T2;

دستور زیر مشابه عبارت بالا می باشد:

SELECT * 
FROM T1, T2;

شما می توانید توسط دستور INNER JOIN و شرط معادل true دستور cross join را معادل سازی نمایید: 

SELECT *
FROM T1
INNER JOIN T2 ON TRUE;

 

مثال CROSS JOIN در PostgreSQL 

دستور CREATE TABLE زیر جدول T1 و T2 را ایجاد می نماید و تعدادی داده نمونه در آنها قرار می دهد: 

CREATE TABLE T1 (label CHAR(1) PRIMARY KEY);
 
CREATE TABLE T2 (score INT PRIMARY KEY);
 
INSERT INTO T1 (label)
VALUES
 ('A'),
 ('B');
 
INSERT INTO T2 (score)
VALUES
 (1),
 (2),
 (3);

دستور زیر از CROSS JOIN برای ارتباط دو جدول T1 و T2 استفاده کرده است:

SELECT
 *
FROM
 T1
CROSS JOIN T2;
label | score
-------+-------
 A     |     1
 B     |     1
 A     |     2
 B     |     2
 A     |     3
 B     |     3
(6 rows)

شکل زیر نتیجه CROSS JOIN را نمایش می دهد:

نمایش Cross Join

 

اشتراک گذاری :