📜  Oracle Cross Join

📅  最后修改于: 2020-11-15 04:39:06             🧑  作者: Mango

Oracle Cross Join(笛卡尔产品)

CROSS JOIN指定第一个表中的所有行与第二个表中的所有行联接。如果表1中有“ x”行,而表2中有“ y”行,那么交叉连接结果集将具有x * y行。如果没有指定匹配的连接列,通常会发生这种情况。

用简单的话可以说,如果联接查询中的两个表没有联接条件,则Oracle返回其笛卡尔积。

句法

SELECT * 
FROM table1 
CROSS JOIN table2;

要么

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

输出量