SQL RIGHT JOIN
SQL RIGHT JOIN keyword
The RIGHT JOIN keyword returns all rows from the right table (table2), even if there is no match in the left table (table1). If there is no match in the left table, the result is NULL.
SQL RIGHT JOIN syntax
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
or:
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
Comments: In some databases, RIGHT JOIN is called RIGHT OUTER JOIN.
Demo Database
In this tutorial we will use the php sample database.
The following is the data selected from the "Websites" table:
| id | name | url --------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | Taobao | https://www.taobao.com/ | 13 | CN |
| 3 | php Chinese website | http://www.php.cn/ | 4689 | CN |
| 4 | Weibo | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND |
+----+---------------+----------- ----------------+------+---------+
The following is the data of the "access_log" website access record table:
+-----+--------- +-------+------------+
| aid | site_id | count | date |
+-----+------ ---+-------+------------+
| 1 | 1 | 45 | 2016-05-10 |
| 2 | 3 | 100 | 2016-05-13 |
| 3 | 1 | 230 | 2016-05-14 |
| 4 | 2 | 10 | 2016-05-14 |
| 5 | 5 | 205 | 2016 -05-14 |
| 6 | 4 | 13 | 2016-05-15 |
| 7 | 3 | 220 | 2016-05-15 |
| 8 | 5 | 545 | 201 6-05 -16 |
| 9 | 3 | 201 | 2016-05-17 |
+-----+----------+------+--- ---------+
9 rows in set (0.00 sec)
SQL RIGHT JOIN Example
The following SQL statement will return the website access records.
In the following example, we use access_log as the left table and Websites as the right table:
Example
FROM access_log
RIGHT JOIN Websites
ON access_log.site_id=Websites.id
ORDER BY access_log.count DESC;
Execute the above SQL and the output result is as follows:
Note:RIGHT JOIN keyword from the right The table (Websites) returns all rows, even if there are no matches in the left table (access_log).