In SQL, a RIGHT JOIN is a type of join operation used to combine data from two tables based on a common column, but it returns all the rows from the right table and matching rows from the left table. This means that even if there are no matching rows in the left table, the rows from the right table will still be returned.
Syntax
The syntax for a RIGHT JOIN is as follows:
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
In this syntax, table1 is the left table, and table2 is the right table. The ON keyword is used to specify the column or columns that the tables will be joined on.
The result of a RIGHT JOIN will include all the rows from the right table and any matching rows from the left table. If there are no matching rows in the left table, the result will still include the row from the right table, but the columns from the left table will be NULL.
Example
Let’s take a look at an example to better understand how a RIGHT JOIN works. Consider the following two tables:
Table1: Employees ID Name Department 1 John HR 2 Sarah IT 3 Mark Sales 4 Jane Marketing Table2: Departments ID Department 1 HR 2 IT 3 Sales
If we wanted to combine the two tables based on the Department column, we could use a RIGHT JOIN as follows:
SELECT * FROM Employees RIGHT JOIN Departments ON Employees.Department = Departments.Department;
The result of this query would be:
ID Name Department ID Department 1 John HR 1 HR 2 Sarah IT 2 IT 3 Mark Sales 3 Sales 4 Jane Marketing NULL NULL
In this result, we can see that all the rows from the right table (Departments) were returned, and matching rows from the left table (Employees) were also returned. However, since there was no match for the Marketing department in the Departments table, the corresponding row in the result has NULL values for the columns from the Departments table.
In conclusion, a RIGHT JOIN is a useful tool for combining data from two tables based on a common column while ensuring that all rows from the right table are included in the result, regardless of whether or not there is a matching row in the left table.