SQL RIGHT JOIN
SQL RIGHT JOIN
The RIGHT JOIN 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.
The RIGHT JOIN and RIGHT OUTER JOIN keywords are equal - the OUTER keyword is optional.
SQL RIGHT JOIN
RIGHT JOIN Syntax
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
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 "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.
SQL RIGHT JOIN Example
The following SQL will return all employees, and any orders they might have placed:
Example
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
Note: The RIGHT JOIN keyword returns all records from the
right table (Employees), even if there are no matches in the left table
(Orders).