Skip to main content

Joins in Oracle with Examples

Why Joins are required

The information needed to satisfy a user query requires more than one table.
For example, the EMPLOYEES table has a column with a department number but not a department name; the department name must be retrieved from the DEPARTMENTS table. You can get this information by joining the two tables on a common column, in this case, the DEPARTMENT_ID column. Two or more tables can also be joined in situations where the columns may not be equal.


Type of Joins

1) Equijoin or Inner Join or Natural Join

2) Outer Joins
                a) Left Outer Join
                b) Right Outer Join
                c) Full Outer Join
3) Self-Joins


Equijoin or Inner Join

A join between two tables where rows are returned if one or more columns in common between the two tables are equal and not NULL.

Outer Join

A join between two or more tables returning all the rows in one table whether or not the second table contains a match on the join condition

Self-Join

A join of a table to itself where a non-primary key column in the table is related to the primary key column of another row in the same table

Hierarchical 

A table design where one of the foreign keys in the table references the primary key of the same table in a parent-child relationship.

Cartesian Product 

A join between two tables where no join condition is specified, and as a result, every row in the first table is joined with every row in the second table.

Equijoin or Inner Join Syntax  

Company needs to see the department name in the report. That information is in the DEPARTMENTS table.
Now we will join the two tables on the common column,DEPARTMENT_ID, and produce a report that is much more readable:

Syntax

select    employee_id "Emp ID",
                last_name || ', ' || first_name "Name",
                department_name "Dept"
from      employees employees , departments departments
where    employees.department_id = departments .department_id;

Outer Join Syntax  oracle

select    e.employee_id 'Emp ID',
                e.last_name || ', ' || e.first_name 'Name',
                d.department_name 'Dept'
from      employees e left outer join departments d
                on e.department_id = d.department_id
where   e.job_id = 'SA_REP'; 


Full Outer Join Syntax  oracle

select    e.employee_id "Emp ID",
                e.last_name || ', ' || e.first_name "Name",
                d.department_name "Dept"
from      employees e full outer join departments d
                on e.department_id = d.department_id;

 


Self-Join Syntax  oracle
select    e.employee_id "Emp ID",
                e.last_name "Emp Name",
                m.employee_id "Mgr ID",
                m.last_name "Mgr Name"
from      employees e join employees m
                on e.manager_id = m.employee_id;
 

Comments

Popular posts from this blog

Top 100 Informatica Interview Questions

I have attended Informatica interview last week in wipro and couple of other companies, Question below I faced in those companies. 1. What are the main issues while working with flat files as source and as targets ? 2. Explain about Informatica server process that how it works relates to mapping variables? 3. write a query to retrieve the latest records from the table sorted by version(scd) 4. How do you handle two sessions in Informatica 5. which one is better performance wise joiner or look up 6. How to partition the Session? 7. How many types of sessions are there in informatica.please explain them. 8. Explain the pipeline partition with real time example? 9. Explain about cumulative Sum or moving sum? 10. CONVERT MULTIPLE ROWS TO SINGLE ROW (MULTIPLE COLUMNS) IN INFORMATICA 11. DEPLOYMENT GROUPS IN INFORMATICA 12. LOAD LAST N RECORDS OF FILE INTO TARGET TABLE - INFORMATICA 13. LOAD ALTERNATIVE RECORDS / ROWS INTO...

Configuring the Evaluate Function in OBIEE 12C

/obiee/MW/instances/instance1/config/OracleBIServerComponent/coreapplication_obis1 Change the value of EVALUATE_SUPPORT_LEVEL =0 as below EVALUATE_SUPPORT_LEVEL: 1: evaluate is supported for users with manageRepositories permssion 2: evaluate is supported for any user. other: evaluate is not supported if the value is anything else. EVALUATE_SUPPORT_LEVEL = 2; Configuring Maximum number of records not done for odi server Configuring Maximum number of records Exceeded configured maximum number of allowed input records. Added tags in Instanceconfig.xml file. Steps : 1. login into EM 2.stop the opmn services 3.go to path /obiee/FMW/instances/instance1/config/OracleBIPresentationServicesComponent/coreapplication_obips1 4.edit the instanceconfig.xml file using vi command 5. Add bellow line under views tags <MaxVisibleColumns>30000</MaxVisibleColumns> <MaxVisiblePages>2500000</MaxVisiblePages> <MaxVisibleRows>65000</MaxVisibleRows> <MaxVisib...

OBIEE 11g dumps

I have cleared OBIEE 11g certification exam (1z0-591) exam yesterday, It was damn easy when compared to OBIEE 10g certification. I have referenced oracle PDF and some of the other OBIEE dumps. I remember some of the question which came in exam. I will publish those question very soon