🛢️
PostgreSQL
Grokking Algorithm
  • Content
  • Environment
  • Getting Started
    • Introduction
      • What is PostgreSQL
      • Introduction to PostgreSQL sample database
    • Postgres on Windows
      • Install PostgreSQL on Windows
      • Connect to PostgreSQL database server
      • Load the sample database into the PostgreSQL database server
    • Postgres on Linux
    • Install PostgreSQL on macOS
  • Basic
    • Querying Data
      • SELECT
      • Column alias
      • ORDER BY
      • SELECT DISTINCT
    • Filtering Data
      • WHERE
      • AND
      • OR
      • LIMIT
      • FETCH
      • IN
      • BETWEEN
      • LIKE
      • IS NULL
    • Joining Multiple tables
      • Joins
      • Table aliases
      • INNER JOIN
      • LEFT JOIN
      • RIGHT JOIN
      • SELF JOIN
      • FULL OUTER JOIN
      • CROSS JOIN
      • NATURAL JOIN
    • Grouping data
      • GROUP BY
      • HAVING
    • Set Operations
      • UNION
      • INTERSECT
      • EXCEPT
    • Grouping sets, Cube, and Rollup
      • Grouping sets
      • CUBE
      • ROLLUP
    • Subquery
      • Subquery
      • ANY
      • ALL
      • EXISTS
    • Common Table Expressions
      • PostgreSQL CTE
      • Recursive query using CTEs
    • Modifying Data
      • Insert
      • Insert multiple rows
      • Update
      • Update join
      • Delete
      • Upsert
    • Transactions
      • PostgreSQL Transaction
    • Import & Export Data
      • Import CSV file into Table
      • Export PostgreSQL Table to CSV file
    • Managing Tables
      • Data types
      • Create a table
      • Select into
      • Create table as
      • Auto-increment
      • Sequences
      • Identity column
      • Alter table
      • Rename table
      • Add column
      • Drop column
      • Change column data type
      • Rename column
      • Drop table
      • Truncate table
      • Temporary table
      • Copy a table
    • Understanding PostgreSQL constraints
      • Primary key
      • Foreign key
      • UNIQUE constraint
      • CHECK constraint
      • NOT NULL constraint
    • PostgreSQL Data Types in Depth
      • Boolean
      • CHAR, VARCHAR and TEXT
      • NUMERIC
      • Integer
      • DATE
      • Timestamp
      • Interval
      • TIME
      • UUID
      • Array
      • hstore
      • JSON
      • User-defined data types
  • Advanced
  • PG-PGSQL
  • Functions
  • Adminstration
  • API
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Basic
  2. Joining Multiple tables

CROSS JOIN

Ushbu qoʻllanmada siz PostgreSQL CROSS JOIN dan qanday qilib birlashtirilgan jadvallardan qatorlarning kartezian mahsulotini ishlab chiqarishni oʻrganasiz.

CROSS JOIN bandi ikki yoki undan ortiq jadvaldagi satrlarning dekart mahsulotini yaratishga imkon beradi.

LEFT JOIN yoki INNER JOIN kabi boshqa qo'shilish gaplaridan farqli o'laroq, CROSS JOIN bandida qo'shilish predikati yo'q.

Aytaylik, siz ikkita T1 va T2 jadvallarini CROSS JOINni bajarishingiz kerak.

Agar T1 n ta qatorga va T2 m qatorga ega bo'lsa, natijalar to'plami nxm qatorlarga ega bo'ladi. Misol uchun, T1 1000 qatorga va T2 1000 qatorga ega, natija to'plami 1000 x 1000 = 1 000 000 qatorga ega bo'ladi.

Quyida CROSS JOIN sintaksisi sintaksisi tasvirlangan:

SELECT select_list
FROM T1
CROSS JOIN T2;

Quyidagi bayonot yuqoridagi bayonotga tengdir:

SELECT select_list
FROM T1, T2;

Bundan tashqari, oʻzaro qoʻshilishni taqlid qilish uchun har doim rost deb baholanadigan shart bilan INNER JOIN bandidan foydalanishingiz mumkin:

SELECT *
FROM T1
INNER JOIN T2 ON true;

PostgreSQL CROSS JOIN misoli

Quyidagi CREATE TABLE iboralari T1 va T2 jadvallarini yaratadi va o'zaro namoyish uchun ba'zi namunaviy ma'lumotlarni kiritadi.

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

Quyidagi bayonot T1 jadvalini T2 jadvaliga qo'shish uchun CROSS JOIN operatoridan foydalanadi.

SELECT *
FROM T1
CROSS JOIN T2;

 label | score
-------+-------
 A     |     1
 B     |     1
 A     |     2
 B     |     2
 A     |     3
 B     |     3
(6 rows)

Quyidagi rasm T1 jadvalini T2 jadvaliga ulashda CROSS JOIN natijasini ko'rsatadi:

Ushbu oʻquv qoʻllanmada siz ikki yoki undan ortiq jadvaldagi qatorlarning kartezian mahsulotini yaratish uchun PostgreSQL CROSS JOIN bandidan qanday foydalanishni oʻrgandingiz.

PreviousFULL OUTER JOINNextNATURAL JOIN

Last updated 1 year ago

Was this helpful?

©

postgresqltutorial.com
output