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  

输出结果为:

热门文章

优秀文章