Oracle Cross Join交叉连接
一、Oracle Cross Join交叉连接 语法
CROSS JOIN 指定第一个表的所有行与第二个表的所有行连接。如果 table1 中有“x”行,table2 中有“y”行,则交叉连接结果集有 x*y 行。当没有指定匹配的连接列时,通常会发生这种情况。
简单来说,您可以说如果连接查询中的两个表没有连接条件,那么 Oracle 将返回它们的笛卡尔积。
语法:
SELECT *
FROM table1
CROSS JOIN table2;
或者:
SELECT * FROM table1, table2
上述两种语法都是相同的,用于笛卡尔积。它们在执行后提供类似的结果。
二、Oracle Cross Join交叉连接 示例
让我们看两个表“customer”和“supplier”。
customer表:
CREATE TABLE "CUSTOMER"
( "CUSTOMER_ID" NUMBER,
"FIRST_NAME" VARCHAR2(4000),
"LAST_NAME" VARCHAR2(4000)
)
/
supplier表:
CREATE TABLE "SUPPLIER"
( "SUPPLIER_ID" NUMBER,
"FIRST_NAME" VARCHAR2(4000),
"LAST_NAME" VARCHAR2(4000)
)
/
执行以下SQL语句:
SELECT * FROM customer,supplier
输出结果为:
热门文章
优秀文章