Oracle教程

Oracle Cross Join

交叉联接指定第一个表中的所有行与第二个表中的所有行联接。如果表1中有" x"行,而表2中有" y"行,那么交叉连接结果集将具有x * y行。通常,当没有指定匹配的联接列时就会发生这种情况。
简单地说,如果联接查询中的两个表没有联接条件,那么Oracle返回其笛卡尔积。
语法
SELECT * 
FROM table1 
CROSS JOIN table2;
SELECT * FROM table1, table2
以上两种语法相同,并且用于笛卡尔积。执行后,它们提供类似的结果。
交叉联接的图像表示
Oracle交叉联接

Oracle交叉连接示例

让我们采用两个表" customer"和" supplier"。
Customer table detail
CREATE TABLE  "CUSTOMER" 
   (    "CUSTOMER_ID" NUMBER, 
    "FIRST_NAME" VARCHAR2(4000), 
    "LAST_NAME" VARCHAR2(4000)
   )
/
Oracle Cross Join 2
SUPPLIERS表详细信息
CREATE TABLE  "SUPPLIER" 
   (    "SUPPLIER_ID" NUMBER, 
    "FIRST_NAME" VARCHAR2(4000), 
    "LAST_NAME" VARCHAR2(4000)
   )
/
Oracle Cross Join 3
执行此查询
SELECT * FROM customer,supplier
输出
Oracle Cross Join 4
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4