In this tutorial, we will learn how to use LEFT JOIN or LEFT OUTER JOIN keyword and join two or more tables using SQL.
SQL LEFT JOIN Keyword returns all the records from the left table, and return matched records from the right table. If The result is NULL from the right side table if there is no match found.
SQL LEFT JOIN or LEFT OUTER JOIN both are the same.
SELECT column1, column2,...columnN
FROM tableName1
LEFT JOIN tableName2 ON tableName1.column1 = tableName2.column1;
Let us consider three tables "Employee", "Department" and "Designation" for records
Table Name : Employee
| ID | EmpName | City | Country | Gender | Salary | DeptID | DesigID |
| 1 | Shankar | Delhi | India | male | 25000 | 1 | 6 |
| 2 | Sourabh | Delhi | India | male | 30000 | 1 | 2 |
| 3 | Ranvijay | Mumbai | India | male | 15000 | 2 | 3 |
| 4 | Kapil | Noida | India | male | 25000 | 3 | 4 |
| 5 | Shalini | Jaipur | India | female | 18000 | 2 | NULL |
| 6 | Rakesh | Faridabad | India | male | 23000 | 1 | 2 |
| 7 | Akshay | Mumbai | India | male | 21000 | 2 | 4 |
| 8 | Sarah | New York | US | female | 76000 | 3 | 1 |
| 9 | Rocky | Noida | India | male | 28000 | NULL | 6 |
Table: Department
| DeptID | DepartmentName |
| 1 | IT |
| 2 | Finance |
| 3 | HR |
Table: Designation
| DesigID | DesignationName |
| 1 | GM |
| 2 | Manager |
| 3 | CEO |
| 4 | Developer |
| 5 | Team Leader |
| 6 | Executive |
For selecting an employee name, department name and designation name, a query will be:
SELECT EMP.EmpName,Dept.DepartmentName,Desg.DesignationName
FROM Employee EMP
LEFT JOIN Department Dept ON EMP.DeptId=Dept.DeptID
LEFT JOIN Designation Desg ON EMP.DesignationId=Desg.DesigID
| EmpName | DeptartmentName | DesignationName |
| Shankar | IT | Executive |
| Sourabh | IT | CEO |
| Ranvijay | Finance | Manager |
| Kapil | HR | Developer |
| Shalini | Finance | NULL |
| Rakesh | IT | Manager |
| Akshay | Finance | Developer |
| Sarah | HR | GM |
| Rocky | NULL | Executive |