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

RIGHT JOIN Syntax
SELECT table1.column1, table1.column2, ..., table2.column1, ...
FROM table1
RIGHT 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
In this tutorial we will use the well-known Northwind sample database.
Below is 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 |
And a selection from the "Employees" table:
| EmployeeID | LastName | FirstName | BirthDate | Photo |
|---|---|---|---|---|
| 1 | Davolio | Nancy | 1968-12-08 | EmpID1.pic |
| 2 | Fuller | Andrew | 1952-02-19 | EmpID2.pic |
| 3 | Leverling | Janet | 1963-08-30 | EmpID3.pic |
Here we see that the related column between the two tables above, is the "EmployeeID" column.
MySQL RIGHT JOIN Example
The following SQL will return all employees, and any orders they might have placed:
Example
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
Try it Yourself »
Note: The RIGHT JOIN keyword returns all records from the
right table (Employees), even if there are no matches in the left table
(Orders).