LEFT OUTER JOIN vs RIGHT OUTER JOIN : Left Outer Join « Table Joins « Oracle PL / SQL






LEFT OUTER JOIN vs RIGHT OUTER JOIN

 
SQL>
SQL> CREATE TABLE project (
  2    pro_id              NUMBER(4),
  3    pro_name            VARCHAR2(40),
  4    budget          NUMBER(9,2),
  5    CONSTRAINT project_pk   PRIMARY KEY (pro_id)
  6  );

Table created.

SQL>
SQL>
SQL> INSERT INTO project(pro_id, pro_name, budget)VALUES (1001, 'A',12345);

1 row created.

SQL> INSERT INTO project(pro_id, pro_name, budget)VALUES (1002, 'ERP',23456);

1 row created.

SQL> INSERT INTO project(pro_id, pro_name, budget)VALUES (1003, 'SQL',34567);

1 row created.

SQL> INSERT INTO project(pro_id, pro_name, budget)VALUES (1004, 'CRM',45678);

1 row created.

SQL> INSERT INTO project(pro_id, pro_name, budget)VALUES (1005, 'VPN',56789);

1 row created.

SQL>
SQL>
SQL>
SQL> CREATE TABLE server_usage (
  2    pro_id                   NUMBER(4),
  3    emp_id                  NUMBER,
  4    time_log_date                DATE,
  5    hours_logged                 NUMBER(8,2),
  6    dollars_charged              NUMBER(8,2),
  7    CONSTRAINT server_usage_pk  PRIMARY KEY (pro_id, emp_id, time_log_date)
  8  );

Table created.

SQL> INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)
  2                    VALUES (1001,101,to_date('4-Apr-2004','dd-mon-yyyy'),1123,222);

1 row created.

SQL> INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)
  2                    VALUES (1002,102,to_date('4-Apr-2005','dd-mon-yyyy'),1124,223);

1 row created.

SQL> INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)
  2                    VALUES (1003,103,to_date('4-Apr-2006','dd-mon-yyyy'),1125,224);

1 row created.

SQL> INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)
  2                    VALUES (1004,104,to_date('4-Apr-2007','dd-mon-yyyy'),1126,225);

1 row created.

SQL> INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)
  2                    VALUES (1005,105,to_date('4-Apr-2008','dd-mon-yyyy'),1127,226);

1 row created.

SQL> INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)
  2                    VALUES (1001,106,to_date('4-Apr-2009','dd-mon-yyyy'),1128,227);

1 row created.

SQL> INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)
  2                    VALUES (1002,107,to_date('4-Apr-2010','dd-mon-yyyy'),1129,228);

1 row created.

SQL>
SQL>
SQL> SET ECHO ON
SQL> SELECT p.pro_name,  ph.time_log_date, ph.hours_logged
  2  FROM project p LEFT OUTER JOIN server_usage ph
  3       ON p.pro_id = ph.pro_id;
A
04-APR-04         1123

ERP
04-APR-05         1124

SQL
04-APR-06         1125

CRM
04-APR-07         1126

VPN
04-APR-08         1127

A
04-APR-09         1128

ERP
04-APR-10         1129


7 rows selected.

SQL>
SQL> SELECT p.pro_name,  ph.time_log_date, ph.hours_logged
  2  FROM server_usage ph RIGHT OUTER JOIN project p
  3       ON p.pro_id = ph.pro_id;
A
04-APR-04         1123

ERP
04-APR-05         1124

SQL
04-APR-06         1125

CRM
04-APR-07         1126

VPN
04-APR-08         1127

A
04-APR-09         1128

ERP
04-APR-10         1129


7 rows selected.

SQL>
SQL> drop table server_usage;

Table dropped.

SQL> drop table project;

Table dropped.

   
  








Related examples in the same category

1.left outer join between employee table and department table
2.Left outer join demo
3.A left outer join:the outer join operator appears on the right of the equality operator
4.LEFT OUTER JOIN tableName ON joined columns
5.Left join with plus sign