Table Joins Oracle PLSQL 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> 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> 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> select o.trainer, avg(r.evaluation)
  2  from   course_schedule o
  3         join
  4         registrations r
  5         using (course,begindate)
  6  group  by o.trainer;
   TRAINER AVG(R.EVALUATION)
---------- -----------------
         1                 4
         6               4.5
         2                 4
         4
         5                 2
         8
         7               4.5
         9                 5
8 rows selected.
SQL>
SQL> drop table course_schedule;
Table dropped.
SQL>
SQL> drop table registrations;
Table dropped.
SQL>