PostgreSQL CROSS JOIN절을 사용하여 조인된 테이블에서 행의 데카르트 곱을 생성하는 방법
CROSS JOIN절은 두 개 이상의 테이블에서 행의 직교만큼 생산 할 수 있습니다.
LEFT JOIN 또는 INNER JOIN 과 같은 다른 조인 절과 달리 CROSS JOIN절에는 조인 술어가 없습니다.
CROSS JOIN두 개의 테이블 T1과 T2 를 수행해야 한다고 가정합니다 .
T1에 n행이 있고 T2에 m행이 있으면 결과 집합에 nxm행 이 있습니다. 예를 들어 T1에는 1,000행이 있고 T2에는 1,000행이 있으며 결과 집합에는 1,000 x 1,000= 1,000,000행이 있습니다.
SELECT select_list
FROM T1
CROSS JOIN T2;
-- same
SELECT select_list
FROM T1, T2;
DROP TABLE IF EXISTS T1;
CREATE TABLE T1 (label CHAR(1) PRIMARY KEY);
DROP TABLE IF EXISTS T2;
CREATE TABLE T2 (score INT PRIMARY KEY);
INSERT INTO T1 (label)
VALUES
('A'),
('B');
INSERT INTO T2 (score)
VALUES
(1),
(2),
(3);
-- T1과 T2를 조인
SELECT *
FROM T1
CROSS JOIN T2;
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - INNER JOIN (0) | 2021.09.02 |
---|---|
[PostgreSQL] BASIC - NATURAL JOIN (0) | 2021.09.02 |
[PostgreSQL] BASIC - Table Aliases (0) | 2021.09.02 |
[PostgreSQL] BASIC - JOIN (0) | 2021.09.02 |
[PostgreSQL] BASIC - IS NULL (0) | 2021.09.02 |
최근댓글