PostgreSQL Cross Join By Example

PostgreSQL Cross Join By Example

 PostgreSQL Cross Join By Example



Summary: in this tutorial, you will learn how to use the PostgreSQL CROSS JOIN to produce a cartesian product of rows from the joined tables.

Introduction to the PostgreSQL CROSS JOIN clause

CROSS JOIN the clause allows you to produce a Cartesian Product of rows in two or more tables.

Different from other join clauses such as LEFT JOIN  or INNER JOIN, the CROSS JOIN the clause does not have a join predicate.

Suppose you have to perform a CROSS JOIN of two tables T1 and T2.

If T1 has n rows and T2 has m rows, the result set will have nxm rows. For example, the T1 has 1,000 rows and T2 has 1,000 rows, the result set will have 1,000 x 1,000 = 1,000,000 rows.

The following illustrates the syntax of the CROSS JOIN syntax:

SELECT select_list FROM T1 CROSS JOIN T2;

The following statement is equivalent to the above statement:

SELECT select_list FROM T1, T2;

Also, you can use an INNER JOIN the clause with a condition that always evaluates to true to simulate the cross join:

SELECT * FROM T1 INNER JOIN T2 ON true;

PostgreSQL CROSS JOIN example

The following CREATE TABLE statements create T1 and T2 tables and insert some sample data for the cross demonstration.

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);

The following statement uses the CROSS JOIN operator to join table T1 with table T2.

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

The following picture illustrates the result the CROSS JOIN when joining the table T1 to table T2:

In this tutorial, you have learned how to use the PostgreSQL CROSS JOIN clause to make a Cartesian Product of rows in two or more tables.

Soeng Souy

Soeng Souy

Website that learns and reads, PHP, Framework Laravel, How to and download Admin template sample source code free.

Post a Comment

CAN FEEDBACK
close