Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Table Joins
 

Natural join two tables

SQL> SQL> create table employees(   2    empno      NUMBER(4)   3  , ename      VARCHAR2(8)   4  , init       VARCHAR2(5)   5  , job        VARCHAR2(8)   6  , mgr        NUMBER(4)   7  , bdate      DATE   8  , msal       NUMBER(6,2)   9  , comm       NUMBER(6,2)  10  , deptno     NUMBER(2) ) ; Table created. SQL> SQL> insert into employees values(1,'Jason',  'N',  'TRAINER', 2,   date '1965-12-18',  800 , NULL,  10); 1 row created. SQL> insert into employees values(2,'Jerry',  'J',  'SALESREP',3,   date '1966-11-19',  1600, 300,   10); 1 row created. SQL> insert into employees values(3,'Jord',   'T' , 'SALESREP',4,   date '1967-10-21',  1700, 500,   20); 1 row created. SQL> insert into employees values(4,'Mary',   'J',  'MANAGER', 5,   date '1968-09-22',  1800, NULL,  20); 1 row created. SQL> insert into employees values(5,'Joe',    'P',  'SALESREP',6,   date '1969-08-23',  1900, 1400,  30); 1 row created. SQL> insert into employees values(6,'Black',  'R',  'MANAGER', 7,   date '1970-07-24',  2000, NULL,  30); 1 row created. SQL> insert into employees values(7,'Red',    'A',  'MANAGER', 8,   date '1971-06-25',  2100, NULL,  40); 1 row created. SQL> insert into employees values(8,'White',  'S',  'TRAINER', 9,   date '1972-05-26',  2200, NULL,  40); 1 row created. SQL> insert into employees values(9,'Yellow', 'C',  'DIRECTOR',10,  date '1973-04-27',  2300, NULL,  20); 1 row created. SQL> insert into employees values(10,'Pink',  'J',  'SALESREP',null,date '1974-03-28',  2400, 0,     30); 1 row created. SQL> SQL> create table history   2  ( empno      NUMBER(4)   3  , beginyear  NUMBER(4)   4  , begindate  DATE   5  , enddate    DATE   6  , deptno     NUMBER(2)   7  , msal       NUMBER(6,2)   8  , comments   VARCHAR2(60)   9  ) ; Table created. SQL> SQL> insert into history values (9,2000,date '2000-01-01',date '2002-01-02',40, 950,'history for 9'); 1 row created. SQL> insert into history values (8,2000,date '2000-01-02', NULL       ,20, 800,''); 1 row created. SQL> insert into history values (7,1988,date '2000-01-06',date '2002-01-07',30,1000,''); 1 row created. SQL> insert into history values (6,1989,date '2000-01-07',date '2002-01-12',30,1300,''); 1 row created. SQL> insert into history values (5,1993,date '2000-01-12',date '2002-01-10',30,1500,'history for 5'); 1 row created. SQL> insert into history values (4,1995,date '2000-01-10',date '2002-01-11',30,1700,''); 1 row created. SQL> insert into history values (3,1999,date '2000-01-11', NULL       ,30,1600,''); 1 row created. SQL> insert into history values (2,1986,date '2000-01-10',date '2002-01-08',20,1000,'history for 2'); 1 row created. SQL> insert into history values (1,1987,date '2000-01-08',date '2002-01-01',30,1000,'history for 1'); 1 row created. SQL> insert into history values (7,1989,date '2000-01-01',date '2002-05-12',30,1150,'history for 7'); 1 row created. SQL> SQL> select ename, beginyear, msal, deptno   2  from   employees   3         natural join   4         history; no rows selected SQL> SQL> drop table history; Table dropped. SQL> SQL> drop table employees; Table dropped. SQL>