PostgreSQL跨连接(CROSS JOIN
)将第一个表的每一行与第二个表的每一行相匹配。 它也被称为笛卡儿积分。 如果table1
具有“x
”列,而table2
具有“y
”列,则所得到的表将具有(x + y
)列。
语法:
SELECT coloums
FROM table1
CROSS JOIN table2
例子:
我们来看一下表“EMPLOYEES
”,具有以下数据。
表2: DEPARTMENT
创建另一个表“DEPARTMENT
”并插入以下值。
-- Table: public.department
-- DROP TABLE public.department
CREATE TABLE public.department
(
id integer,
dept text,
fac_id integer
)
WITH (
OIDS=FALSE
)
ALTER TABLE public.department
OWNER TO postgres
-- 插入数据
INSERT INTO department VALUES(1,&aposIT&apos, 1)
INSERT INTO department VALUES(2,&aposEngineering&apos, 2)
INSERT INTO department VALUES(3,&aposHR&apos, 7)
INSERT INTO department VALUES(10,&aposMarket&apos, 10)
现在,DEPARTMENT
有以下数据 -
执行以下跨连接查询:
SELECT NAME, DEPT
FROM EMPLOYEES
CROSS JOIN DEPARTMENT
得到以下结果 -