The RIGHT (OUTER) JOIN Clause


The RIGHT (OUTER) JOIN clause returns all records from the left table (table1), and the matching records from the right table (table2). The result is 0 records from the right side, if there is no match.

 SELECT column_name(s)
  FROM table1 RIGHT JOIN table2
  ON table1.column_name = table2.column_name;

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:

EmployID LastName FirstName BirthDate Photo
1 Davolio Nancy 12/8/1968 EmpID1.pic
2 Fuller Andrew 2/19/1952 EmpID2.pic
3 Leverling Janet 8/30/1963 EmpID3.pic10308

The RIGHT JOIN clause returns all records from the right table (Employees), even if there are no matches in the left table (Orders).

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
  FROM Orders RIGHT JOIN Employees
  ON Orders.EmployeeID = Employees.EmployeeID
  ORDER BY Orders.OrderID; 

and it will produce something like this:

OrderID LastName FirstName
Davolio Nancy
Fuller Andrew
10309 Leverling Janet


Demonstration
Below is an SQL test area from W3Schools, which uses the well-known Northwind sample database. The tables here are for read only because of the problem of embedding the scripts. For a fully working example, check this by using Chrome.

SQL Statement:

Edit the SQL statement and click     to see the result, or  

Result:
The Database includes:
The Database includes:

TablenameRecord
Customers91
Categories8
Employees10
OrderDetails518
Orders196
Products77
Shippers3
Suppliers29





      “The second day of a diet is always easier than the first.    
      By the second day, you’re off it.”    
      — Buddy Hackett