SQL - Left Join
In SQL Server, a LEFT JOIN (also known as a left outer join) is used to retrieve all the rows from the left table and the matching rows from the right table based on a specified join condition. If there is no match, NULL values are returned for the columns of the right table.
The basic syntax for performing a LEFT JOIN in SQL Server is as follows:
SELECT column_list
FROM table1
LEFT JOIN table2 ON join_condition;
In this syntax, column_list represents the columns you want to select from the tables involved in the join operation. table1 is the left table, and table2 is the right table you want to join. The join_condition specifies the relationship between the tables.
The join condition is typically defined using the equality operator (=) to match values in the related columns of the joined tables. For example, if the related columns are "ID" in table1 and "ID" in table2, the join condition would be table1.ID = table2.ID.
Here's an example to illustrate the usage of a LEFT JOIN:
Consider two tables, "Customers" and "Orders", with the following structures:
Customers Table
ID |
Name |
Age |
1 |
John |
25 |
2 |
Jane |
30 |
3 |
Mike |
35 |
Orders Table
OrderID |
Amount |
CustID |
101 |
100.00 |
1 |
102 |
200.00 |
2 |
103 |
150.00 |
1 |
To retrieve all the customers along with their orders (if any), you can use a LEFT JOIN as follows:
SELECT Customers.Name, Orders.OrderID, Orders.Amount
FROM Customers
LEFT JOIN Orders ON Customers.ID = Orders.CustID;
In the above query, we select the customer name from the "Customers" table and the order ID and amount from the "Orders" table. We perform a left join between the two tables, connecting them based on the customer ID (ID) column in the "Customers" table and the customer ID (CustID) column in the "Orders" table.
The left join ensures that all rows from the left table ("Customers") are included in the result set. If there is a match in the right table ("Orders"), the corresponding order details are displayed. If there is no match, NULL values are returned for the columns of the right table.
The output of the query would be:
Name |
OrderID |
Amount |
John |
101 |
100.00 |
John |
103 |
150.00 |
Jane |
102 |
200.00 |
Mike |
NULL |
NULL |
As you can see, the result set includes all the customers from the "Customers" table, along with their respective orders (if any). In this case, Mike doesn't have any orders, so the order-related columns display NULL values.
In summary, a LEFT JOIN in SQL Server allows you to retrieve all the rows from the left table, along with the matching rows from the right table based on a specified join condition. It's useful when you want to include all rows from one table, even if there