You are on page 1of 2

EQUI JOIN & NON EQUI JOIN

===========================
SYMBOL = SYMBOL OTHER THAN =

INNER JOIN & OUTER JOIN


========================
INNER JOIN - WILL FETCH MATCHED DATA ONLY
OUTER JOIN - WILL FETCH MATCHED + UNMATCHED DATA
RIGHT OUTER - MATCHED DATA + UNMATCHED FROM RIGHT TABLE
LEFT OUTER - MATCHED DATA + UNMATCHED FROM LEFT TABLE
FULL OUTER - MATCHED DATA + UNMATCHED FROM BOTH SIDES TABLE

SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID FROM HR.EMPLOYEES

SELECT * FROM HR.DEPARTMENTS

SELECT
E.FIRST_NAME, E.SALARY, E.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM HR.EMPLOYEES E , HR.DEPARTMENTS D
WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID

SELECT
E.FIRST_NAME, E.SALARY, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM HR.EMPLOYEES E INNER JOIN HR.DEPARTMENTS D
ON E.DEPARTMENT_ID = D.DEPARTMENT_ID

SELECT
E.FIRST_NAME, E.SALARY, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM HR.EMPLOYEES E RIGHT OUTER JOIN HR.DEPARTMENTS D
ON E.DEPARTMENT_ID = D.DEPARTMENT_ID

SELECT
E.FIRST_NAME, E.SALARY, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM HR.EMPLOYEES E LEFT OUTER JOIN HR.DEPARTMENTS D
ON E.DEPARTMENT_ID = D.DEPARTMENT_ID

SELECT
E.FIRST_NAME, E.SALARY, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM HR.EMPLOYEES E FULL OUTER JOIN HR.DEPARTMENTS D
ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
NATURAL & CROSS JOINS
SELECT
FIRST_NAME, SALARY, DEPARTMENT_ID, DEPARTMENT_NAME
FROM HR.EMPLOYEES NATURAL JOIN HR.DEPARTMENTS

SELECT
E.FIRST_NAME, E.SALARY, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM HR.EMPLOYEES E CROSS JOIN HR.DEPARTMENTS D

SELF JOIN
A TABLE JOIN BY ITSELF IS CALLED SELFJOIN

SELECT * FROM HR.EMPLOYEES

SELECT
E.EMPLOYEE_ID "EMPLOYEE ID",
E.FIRST_NAME "EMPLOYEE NAME",
E1.EMPLOYEE_ID "MANAGER ID",
E1.FIRST_NAME "MANAGER NAME"
FROM HR.EMPLOYEES E, HR.EMPLOYEES E1
WHERE E.MANAGER_ID = E1.EMPLOYEE_ID
--AND E.FIRST_NAME = 'Bruce'

You might also like