CROSS JOIN指定第一个表中的所有行与第二个表中的所有行联接。如果表1中有” x”行, 表2中有” y”行, 那么交叉连接结果集将具有x * y行。如果未指定匹配的连接列, 通常会发生这种情况。
用简单的话可以说, 如果联接查询中的两个表没有联接条件, 那么Oracle返回其笛卡尔积。
句法
SELECT *
FROM table1
CROSS JOIN table2;
Or
SELECT * FROM table1, table2
以上两种语法都相同, 并且用于笛卡尔积。执行后, 它们提供类似的结果。
交叉连接的图像表示
Oracle Cross Join示例
让我们采用两个表” 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
输出
评论前必须登录!
注册