Oracle反连接

防联接用于使查询运行更快。这是Oracle提供的功能强大的SQL构造, 可用于更快的查询。
两个表之间的反联接返回第一个表中的行, 其中第二个表中没有匹配项。它与半联接相反。反联接返回第一个表中每行的一个副本, 找不到该副本。
反联接是使用NOT EXISTS或NOT IN构造编写的。
例子
【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反连接

文章图片
执行此查询
SELECTdepartments.department_id, departments.department_name FROMdepartments WHERENOT EXISTS ( SELECT 1 FROMcustomer WHERE customer.department_id = departments.department_id ) ORDER BY departments.department_id;

输出
Oracle反连接

文章图片

    推荐阅读