SQL FULL JOIN



SQL FULL JOIN Statement

The SQL FULL JOIN statement is used to return all records when there is a match in either left or right table records. If there is no match, the result is NULL from the non-matching table.


Syntax

SELECT column1, column2, ...
FROM table1
FULL JOIN table2
ON table1.column = table2.column;

The FULL JOIN statement has the following components:

  • column1, column2, ...: The columns to be retrieved.
  • table1: The name of the first table.
  • table2: The name of the second table.
  • table1.column = table2.column: The condition to join the tables.

Example SQL FULL JOIN Statement Queries

Let's look at some examples of SQL FULL JOIN statement queries:

1. Basic FULL JOIN Example

SELECT employees_1.id, employees_1.first_name, employees_2.department_name
FROM employees_1
FULL JOIN employees_2
ON employees_1.id = employees_2.id;

This query retrieves the id and first_name columns from the employees_1 table and the department_name column from the employees_2 table. It returns all records from both tables where there is a match on the id column, and if there is no match, the result is NULL from the non-matching table.

2. FULL JOIN with WHERE Clause

SELECT employees_1.id, employees_1.first_name, employees_2.department_name
FROM employees_1
FULL JOIN employees_2
ON employees_1.id = employees_2.id
WHERE employees_2.department_name IS NOT NULL;

This query retrieves the id and first_name columns from the employees_1 table and the department_name column from the employees_2 table. It returns all records from both tables where there is a match on the id column, and filters the results to include only those where the department_name is not null.


Full Example

Let's go through a complete example that includes creating tables, inserting data, and querying the tables with the FULL JOIN statement.

Step 1: Creating Tables

This step involves creating new tables named employees_1 and employees_2 to store employee data.

CREATE TABLE employees_1 (
    id INT PRIMARY KEY,
    first_name VARCHAR(50)
);

CREATE TABLE employees_2 (
    id INT PRIMARY KEY,
    department_name VARCHAR(50)
);

In this example, we create two tables: employees_1 with columns for id and first_name, and employees_2 with columns for id and department_name.

Step 2: Inserting Data into the Tables

This step involves inserting some sample data into the employees_1 and employees_2 tables.

INSERT INTO employees_1 (id, first_name)
VALUES (1, 'John'), (2, 'Jane'), (3, 'Jim');

INSERT INTO employees_2 (id, department_name)
VALUES (1, 'Engineering'), (2, 'HR'), (4, 'Marketing');

Here, we insert data into the employees_1 and employees_2 tables.

Step 3: Querying the Tables with FULL JOIN

This step involves selecting the data from the employees_1 and employees_2 tables and joining them using the FULL JOIN statement.

SELECT employees_1.id, employees_1.first_name, employees_2.department_name
FROM employees_1
FULL JOIN employees_2
ON employees_1.id = employees_2.id;

This query retrieves all the rows from both the employees_1 and employees_2 tables, matching them on the id column. The result will be:

id  first_name  department_name
--- ----------- ---------------
1   John        Engineering
2   Jane        HR
3   Jim         NULL
4   NULL        Marketing

Conclusion

The SQL FULL JOIN statement is a powerful tool for returning all records when there is a match in either left or right table records. Understanding how to use the FULL JOIN statement and its syntax is essential for effective data retrieval and analysis in SQL databases.