w3resource

SQL Right Join

RIGHT JOIN

The SQL RIGHT JOIN, joins two tables and fetches rows based on a condition, which is matching in both the tables ( before and after the JOIN clause mentioned in the syntax below) , and the unmatched rows will also be available from the table written after the JOIN clause ( mentioned in the syntax below ).

Visual presentation of SQL Right Join:

Sql right join image

Syntax:

SELECT *
FROM table1
RIGHT [ OUTER ] JOIN table2
ON table1.column_name=table2.column_name;

SQL RIGHT join fetches a complete set of records from table2, i.e. the rightmost table after JOIN clause, with the matching records (depending on the availability) in table1. The result is NULL in the left side when no matching will take place.

Syntax diagram - SQL Right Join

Syntax diagram - SQL RIGHT JOIN

Example of SQL Right Join or right outer join

Sample table: foods
+---------+--------------+-----------+------------+
| ITEM_ID | ITEM_NAME    | ITEM_UNIT | COMPANY_ID |
+---------+--------------+-----------+------------+
| 1       | Chex Mix     | Pcs       | 16         |
| 6       | Cheez-It     | Pcs       | 15         |
| 2       | BN Biscuit   | Pcs       | 15         |
| 3       | Mighty Munch | Pcs       | 17         |
| 4       | Pot Rice     | Pcs       | 15         |
| 5       | Jaffa Cakes  | Pcs       | 18         |
| 7       | Salt n Shake | Pcs       |            |
+---------+--------------+-----------+------------+
Sample table: company
+------------+---------------+--------------+
| COMPANY_ID | COMPANY_NAME  | COMPANY_CITY |
+------------+---------------+--------------+
| 18         | Order All     | Boston       |
| 15         | Jack Hill Ltd | London       |
| 16         | Akas Foods    | Delhi        |
| 17         | Foodies.      | London       |
| 19         | sip-n-Bite.   | New York     |
+------------+---------------+--------------+

To get company ID, company name and company city columns from company table and company ID, item name columns from foods table, after an OUTER JOINING with these mentioned tables, the following SQL statement can be used:

SQL Code:


-- Selecting specific columns from the 'company' table and the 'foods' table
SELECT company.company_id, company.company_name, company.company_city, foods.company_id, foods.item_name
-- Joining the 'company' table with the 'foods' table using a RIGHT JOIN
FROM company
RIGHT JOIN foods
-- Matching rows from 'company' and 'foods' where the company_id values are equal
ON company.company_id = foods.company_id;

Explanation:

  • This SQL query is retrieving data from two tables: 'company' and 'foods'.

  • It selects specific columns from these tables: 'company_id', 'company_name', and 'company_city' from the 'company' table, and 'company_id' and 'item_name' from the 'foods' table.

  • The query uses a RIGHT JOIN to combine rows from the 'company' table with matching rows from the 'foods' table.

  • The join condition is specified in the ON clause, which matches rows based on the equality of 'company_id' values between the two tables.

  • Since it's a RIGHT JOIN, all rows from the 'foods' table are included in the result set, and only matching rows from the 'company' table are included.

  • If there are no matching rows in the 'company' table for a particular row in the 'foods' table, NULL values will be returned for the columns selected from the 'company' table.

  • This query is useful for retrieving information about food items and the companies that produce them, ensuring that all food items are included in the result regardless of whether they have associated companies (hence the RIGHT JOIN).

Output:

COMPANY_ID COMPANY_NAME              COMPANY_CITY              COMPANY_ID ITEM_NAME
---------- ------------------------- ------------------------- ---------- --------------
18         Order All                 Boston                    18         Jaffa Cakes
15         Jack Hill Ltd             London                    15         Pot Rice
15         Jack Hill Ltd             London                    15         BN Biscuit
15         Jack Hill Ltd             London                    15         Cheez-It
16         Akas Foods                Delhi                     16         Chex Mix
17         Foodies.                  London                    17         Mighty Munch
                                                                          Salt n Shake

Outputs of the said SQL statement shown here is taken by using Oracle Database 10g Express Edition

Visual Presentation of the above example:

SQL RIGHT JOIN - W3RESOURCE

RIGHT JOIN: Relational Databases

Key points to remember

Click on the following to get the slides presentation -

SQL JOINS, slide presentation

Check out our 1000+ SQL Exercises with solution and explanation to improve your skills.

Previous: SQL LEFT JOIN
Next: SQL FULL OUTER JOIN



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/sql/joins/perform-a-right-join.php