📅  最后修改于: 2020-11-15 04:39:06             🧑  作者: Mango
CROSS JOIN指定第一个表中的所有行与第二个表中的所有行联接。如果表1中有“ x”行,而表2中有“ y”行,那么交叉连接结果集将具有x * y行。如果没有指定匹配的连接列,通常会发生这种情况。
用简单的话可以说,如果联接查询中的两个表没有联接条件,则Oracle返回其笛卡尔积。
句法
SELECT *
FROM table1
CROSS JOIN table2;
要么
SELECT * FROM table1, table2
以上两种语法相同,并且用于笛卡尔积。执行后,它们提供类似的结果。
交叉连接的图像表示
让我们采用两个表“ customer”和“ supplier”。
客户表明细
CREATE TABLE "CUSTOMER"
( "CUSTOMER_ID" NUMBER,
"FIRST_NAME" VARCHAR2(4000),
"LAST_NAME" VARCHAR2(4000)
)
/
供应商表详细信息
CREATE TABLE "SUPPLIER"
( "SUPPLIER_ID" NUMBER,
"FIRST_NAME" VARCHAR2(4000),
"LAST_NAME" VARCHAR2(4000)
)
/
执行此查询
SELECT * FROM customer,supplier
输出量