SQL Getting Sta...login
SQL Getting Started Tutorial Manual
author:php.cn  update time:2022-04-12 14:15:40

SQL FULL OUTER JOIN



SQL FULL OUTER JOIN keyword

FULL OUTER JOIN keyword As long as there is a match in one of the left table (table1) and the right table (table2), it will be returned Row.

FULL OUTER JOIN keyword combines the results of LEFT JOIN and RIGHT JOIN.

SQL FULL OUTER JOIN syntax

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

SQL FULL 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 | 2016-05-16 |
| 9 | 3 | 201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)

SQL FULL OUTER JOIN example

The following SQL statement selects all website access records.

FULL OUTER JOIN is not supported in MySQL. You can test the following example in SQL Server.

Example

          SELECT Websites.name, access_log.count, access_log.date
FROM Websites
FULL OUTER JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;

Note: The FULL OUTER JOIN keyword returns all rows in the left table (Websites) and the right table (access_log). If there are rows in the "Websites" table that do not match in the "access_log" or rows in the "access_log" table that do not match in the "Websites" table, these are also listed.