个性化阅读
专注于IT技术分析

Oracle半联接

本文概述

半联接在Oracle 8.0中引入。它提供了执行WHERE EXISTS子查询的有效方法。

半联接返回第一个表中每行的至少一个匹配项的一个副本。

半连接是使用EXISTS构造编写的。

Oracle半连接示例

让我们拿两个表”部门”和”客户”

部门表

CREATE TABLE  "DEPARTMENTS" 
   (	"DEPARTMENT_ID" NUMBER(10, 0) NOT NULL ENABLE, "DEPARTMENT_NAME" VARCHAR2(50) NOT NULL ENABLE, CONSTRAINT "DEPARTMENTS_PK" PRIMARY KEY ("DEPARTMENT_ID") ENABLE
   )
/
Oracle半联接

客户表

CREATE TABLE  "CUSTOMER" 
   (	"CUSTOMER_ID" NUMBER, "FIRST_NAME" VARCHAR2(4000), "LAST_NAME" VARCHAR2(4000), "DEPARTMENT_ID" NUMBER
   )
/
Oracle半联接2

执行此查询

SELECT   departments.department_id, departments.department_name
        FROM     departments
        WHERE    EXISTS
                 (
                 SELECT 1
                 FROM   customer
                 WHERE customer.department_id = departments.department_id
                 )
        ORDER BY departments.department_id;

输出

Oracle半联接3

反连接和半连接之间的区别

半联接返回找到至少一个匹配项的第一张表中每行的一个副本, 而反联接返回找到没有匹配项的第一张表中每行的一个副本。

赞(0)
未经允许不得转载:srcmini » Oracle半联接

评论 抢沙发

评论前必须登录!