SQL JOIN
A JOIN clause is used to
combine rows from two or more tables, based on a related column between them.
SQL Server has 4 types of joins:
INNER JOIN/simple join
LEFT OUTER JOIN/LEFT
JOIN
RIGHT OUTER JOIN/RIGHT JOIN
FULL OUTER JOIN
RIGHT OUTER JOIN/RIGHT JOIN
FULL OUTER JOIN
SELECT Columns
FROM
table1
INNER JOIN
table2
ON table1.column=table2.column
We
will use the two tables we created in our previous post, which can be found here
to demonstrate; Employees and Departments tables
Employees Table
Departments Table
INNER JOIN
This
type of JOIN returns rows from all tables in which the join condition is true.
It takes the following syntax:
Example
--INNER
JOIN
SELECT e.Id,e.FirrstName,e.MiddleName,e.LastName,e.Address,e.PhoneNumber,e.DateOfBirth,d.DeptName
FROM
employees e
INNER JOIN
departments d
ON e.DepartmentId=d.Id
Result
LEFT OUTER JOIN
This
type of join will return all rows from the left-hand table plus records in the
right-hand table with matching values.
Example
-- LEFT
OUTER JOIN
SELECT e.Id,e.FirrstName,e.MiddleName,e.LastName,e.Address,e.PhoneNumber,e.DateOfBirth,d.DeptName
FROM
employees e
LEFT OUTER JOIN
departments d
ON e.DepartmentId=d.Id
Result
The records without
matching values are replaced with NULLs in the respective columns as shown
above.
RIGHT OUTER JOIN
This type of join
returns all rows from the right-hand table and only those with matching values
in the left-hand table.
Example
--RIGHT OUTER JOIN
SELECT e.Id,e.FirrstName,e.MiddleName,e.LastName,e.Address,e.PhoneNumber,e.DateOfBirth,d.DeptName
FROM
employees e
RIGHT OUTER JOIN
departments d
ON e.DepartmentId=d.Id
Result
The records without
matching values are replaced with NULLs in the respective columns.
FULL OUTER JOIN
This
type of join returns all rows from both tables with NULL values where the JOIN
condition is not true.
Example
--FULL OUTER JOIN
SELECT e.Id,e.FirrstName,e.MiddleName,e.LastName,e.Address,e.PhoneNumber,e.DateOfBirth,d.DeptName
FROM
employees e
FULL OUTER JOIN
departments d
ON e.DepartmentId=d.Id
Result
The records without
matching values are replaced with NULLs in the respective columns.
Comments
Post a Comment