Not Exist with subquery : EXISTS « Query Select « Oracle PL/SQL Tutorial






SQL>
SQL> create table course_schedule
  2  ( course     VARCHAR2(6)
  3  , begindate  DATE
  4  , trainer    NUMBER(4)
  5  , location   VARCHAR2(20)) ;

Table created.

SQL>
SQL>
SQL> insert into course_schedule values ('SQL',date '1999-04-12',1,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('OAU',date '1999-08-10',2,'CHICAGO');

1 row created.

SQL> insert into course_schedule values ('SQL',date '1999-10-04',3,'SEATTLE');

1 row created.

SQL> insert into course_schedule values ('SQL',date '1999-12-13',4,'DALLAS' );

1 row created.

SQL> insert into course_schedule values ('JAV',date '1999-12-13',5,'SEATTLE');

1 row created.

SQL> insert into course_schedule values ('XML',date '2000-02-03',6,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('JAV',date '2000-02-01',7,'DALLAS' );

1 row created.

SQL> insert into course_schedule values ('PLS',date '2000-09-11',8,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('XML',date '2000-09-18',NULL,'SEATTLE');

1 row created.

SQL> insert into course_schedule values ('OAU',date '2000-09-27',9,'DALLAS' );

1 row created.

SQL> insert into course_schedule values ('ERM',date '2001-01-15',10, NULL    );

1 row created.

SQL> insert into course_schedule values ('PRO',date '2001-02-19',NULL,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('RSD',date '2001-02-24',8,'CHICAGO');

1 row created.

SQL>
SQL> create table registrations
  2  ( attendee    NUMBER(4)
  3  , course      VARCHAR2(6)
  4  , begindate   DATE
  5  , evaluation  NUMBER(1)) ;

Table created.

SQL>
SQL>
SQL> insert into registrations values (1, 'SQL',date '1999-04-12',4   );

1 row created.

SQL> insert into registrations values (2, 'SQL',date '1999-12-13',NULL);

1 row created.

SQL> insert into registrations values (3, 'SQL',date '1999-12-13',NULL);

1 row created.

SQL> insert into registrations values (4, 'OAU',date '1999-08-10',4   );

1 row created.

SQL> insert into registrations values (5, 'OAU',date '2000-09-27',5   );

1 row created.

SQL> insert into registrations values (6, 'JAV',date '1999-12-13',2   );

1 row created.

SQL> insert into registrations values (7, 'JAV',date '2000-02-01',4   );

1 row created.

SQL> insert into registrations values (8, 'JAV',date '2000-02-01',5   );

1 row created.

SQL> insert into registrations values (9, 'XML',date '2000-02-03',4   );

1 row created.

SQL> insert into registrations values (10,'XML',date '2000-02-03',5   );

1 row created.

SQL> insert into registrations values (1, 'PLS',date '2000-09-11',NULL);

1 row created.

SQL> insert into registrations values (2, 'PLS',date '2000-09-11',NULL);

1 row created.

SQL> insert into registrations values (3, 'PLS',date '2000-09-11',NULL);

1 row created.

SQL>
SQL>
SQL>
SQL> select o.*
  2  from   course_schedule o
  3  where  not exists
  4        (select r.*
  5         from   registrations r
  6         where  r.course    = o.course
  7         and    r.begindate = o.begindate);

COURSE BEGINDATE    TRAINER LOCATION
------ --------- ---------- --------------------
SQL    04-OCT-99          3 SEATTLE
XML    18-SEP-00            SEATTLE
PRO    19-FEB-01            VANCOUVER
ERM    15-JAN-01         10
RSD    24-FEB-01          8 CHICAGO

SQL>
SQL> drop table course_schedule;

Table dropped.

SQL>
SQL> drop table registrations;

Table dropped.

SQL>
SQL>








2.18.EXISTS
2.18.1.EXISTS and NOT EXISTS Versus IN and NOT IN
2.18.2.Not Exist with subquery
2.18.3.Exist with subquery
2.18.4.Using the EXISTS Operator with subquery
2.18.5.not exists and subquery
2.18.6.exists in subquery