What is FULL JOIN (Or FULL OUTER JOIN) in MySQL ?

MySQL does not support FULL OUTER JOIN.

Some database systems do not support the full outer join functionality directly, but they can emulate it through the use of an inner join and UNION ALL selects of the "single table rows" from left and right tables respectively. 

Fundamentally, a FULL JOIN is a combination of the effect produced by both a LEFT JOIN and a RIGHT JOIN. Thus we can say that its result set is equivalent to performing a UNION of the results of left and right outer queries.

Example of FULL OUTER JOIN

Customer Table

+------------+--------------+------------+------------+--------+------------+-----------+
| CustomerID | CustomerName | ContactNo  | Address    | CityID | PostalCode | CountryID |
+------------+--------------+------------+------------+--------+------------+-----------+
|          1 | Tarun        | 9999075499 | Madan Puri |    124 |     122001 |        91 |
|          2 | Ram          | 9650423377 | A-487      |     11 |     110085 |        91 |
|          3 | Sham         | 1111111111 | A-485      |     11 |     110085 |        91 |
|          4 | Mohan        | 1234567890 | 454        |    124 |     122002 |        91 |
+------------+--------------+------------+------------+--------+------------+-----------+

Order Table

+---------+------------+---------------------+-----------+
| OrderID | CustomerID | OrderDate           | ShipperID |
+---------+------------+---------------------+-----------+
|       1 |          1 | 2019-10-02 21:23:12 |        11 |
|       2 |          3 | 2019-10-02 21:23:27 |        12 |
|       3 |          5 | 2019-10-02 21:39:21 |        12 |
+---------+------------+---------------------+-----------+

FULL OUTER JOIN Query

SELECT C.CustomerName, O.OrderID 
FROM Customer C 
INNER JOIN Orders O 
ON C.CustomerID = O.CustomerID 

UNION ALL

SELECT C.CustomerName, NULL
FROM Customer C 
WHERE NOT EXISTS (
    SELECT * FROM Orders O
             WHERE C.CustomerID = O.CustomerID)

UNION ALL

SELECT NULL, O.OrderID
FROM Orders O
WHERE NOT EXISTS (
    SELECT * FROM Customer C
             WHERE C.CustomerID = O.CustomerID);

Output

+--------------+---------+
| CustomerName | OrderID |
+--------------+---------+
| Tarun        |       1 |
| Sham         |       2 |
| Ram          |    NULL |
| Mohan        |    NULL |
| NULL         |       3 |
+--------------+---------+