MySQL LEFT JOIN
MySQL LEFT JOIN
The LEFT JOIN clause returns all rows from the left table
(table1), and only the matched rows from the right table (table2).
If there is no match in the right table, the result for the columns from the right table will be NULL.

LEFT JOIN Syntax
SELECT table1.column1, table1.column2, ..., table2.column1, ...
FROM table1
LEFT JOIN table2
ON table1.condition_column = table2.condition_column;
Note: The syntax combines two tables based on a related column,
and the ON keyword is used to specify the matching condition.
Demo Database
Below is a selection from the "Customers" table:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
And a selection from the "Orders" table:
| OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
|---|---|---|---|---|
| 10308 | 2 | 7 | 1996-09-18 | 3 |
| 10309 | 37 | 3 | 1996-09-19 | 1 |
| 10310 | 77 | 8 | 1996-09-20 | 2 |
Here we see that the related column between the two tables above, is the "CustomerID" column.
MySQL LEFT JOIN Examples
The following SQL will select all customers, and any orders they might have:
Example
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Try it Yourself »
Note: The LEFT JOIN keyword returns all records from the
left table (Customers), even if there are no matches in the right table (Orders).
Tip: To find only the customers who have not placed any order, add a WHERE clause to filter for NULL values on the right table:
Example
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
WHERE Orders.CustomerID IS NULL;
Try it Yourself »