|
Home >> FAQs/Tutorials >> Oracle DBA FAQ >> Index
Oracle DBA FAQ - Understanding SQL SELECT Query Statements
By: FYIcenter.com
Part:
1
2
3
4
5
6
7
8
(Continued from previous part...)
How To Write a Query with a Right Outer Join?
If you want to query from two tables with a right outer join, you can use the
RIGHT OUTER JOIN ... ON clause in the FROM clause. The following query returns output
with a right outer join from two tables: departments and employees. The join condition
is that the manager ID in the departments table equals to the employee ID in the employees table:
SQL> set NULL 'NULL'
SQL> SELECT d.department_name, e.first_name, e.last_name
2 FROM departments d RIGHT OUTER JOIN employees e
3 ON d.manager_id = e.employee_id;
DEPARTMENT_NAME FIRST_NAME LAST_NAME
-------------------- -------------------- ---------------
Administration Jennifer Whalen
Marketing Michael Hartstein
Purchasing Den Raphaely
Human Resources Susan Mavris
Shipping Adam Fripp
IT Alexander Hunold
......
NULL Clara Vishney
NULL Jason Mallin
NULL Hazel Philtanker
NULL Nanette Cambrault
NULL Alana Walsh
NULL Karen Partners
NULL Bruce Ernst
......
Note that a right outer join may return extra rows from the second (right) table
that do not satisfy the join condition. In those extra rows, columns from the
first (left) table will be given null values.
The extra rows returned from the right outer join in this example represents employees
that are not assigned as managers in the departments table.
How To Write a Query with a Full Outer Join?
If you want to query from two tables with a full outer join, you can use the
FULL OUTER JOIN ... ON clause in the FROM clause. The following query returns output
with a full outer join from two tables: departments and employees. The join condition
is that the manager ID in the departments table equals to the employee ID in the employees table:
SQL> set NULL 'NULL'
SQL> SELECT d.department_name, e.first_name, e.last_name
2 FROM departments d FULL OUTER JOIN employees e
3 ON d.manager_id = e.employee_id;
DEPARTMENT_NAME FIRST_NAME LAST_NAME
-------------------- -------------------- --------------
Administration Jennifer Whalen
Marketing Michael Hartstein
Purchasing Den Raphaely
Human Resources Susan Mavris
Shipping Adam Fripp
IT Alexander Hunold
......
Treasury NULL NULL
Corporate Tax NULL NULL
Control And Credit NULL NULL
Shareholder Services NULL NULL
Benefits NULL NULL
Manufacturing NULL NULL
Construction NULL NULL
......
NULL Clara Vishney
NULL Jason Mallin
NULL Hazel Philtanker
NULL Nanette Cambrault
NULL Alana Walsh
NULL Karen Partners
NULL Bruce Ernst
......
Note that a right outer join may return two sets of extra rows: one set from the
first (left) table that do not satisfy the join condition, and the other set
from the second (right) table that do not satisfy the join condition.
How To Write an Inner Join with the WHERE Clause?
If you don't want to use the INNER JOIN ... ON clause to write an inner join,
you can put the join condition in the WHERE clause as shown in the following
query example:
SQL> SELECT d.department_name, e.first_name, e.last_name
2 FROM departments d, employees e
3 WHERE d.manager_id = e.employee_id;
DEPARTMENT_NAME FIRST_NAME LAST_NAME
-------------------- -------------------- --------------
Administration Jennifer Whalen
Marketing Michael Hartstein
Purchasing Den Raphaely
Human Resources Susan Mavris
Shipping Adam Fripp
IT Alexander Hunold
......
(Continued on next part...)
Part:
1
2
3
4
5
6
7
8
|