Skip to main content

Full Join

The SQL Full Join is a type of join that returns all records when there is a match in either the left (table1) or the right (table2) table records.

This tutorial will help you understand the Full Join operation in SQL and how to use it in your database queries. We will cover when to use a Full Join, how to write a Full Join query, and some common scenarios where a Full Join can be useful.

Let's get started!

Understanding Full Join

In SQL, a Full Join creates a result set that combines rows from two or more tables. It returns the matched records from both tables as well as the unmatched records from each table. If there is no match, the result is NULL on either side.

When to Use Full Join

Full Join is used when you want to retain all rows from both tables (i.e., table1 and table2). You will get all records when there is a match in either table1 or table2.

For instance, if you want to combine sales data from two different years and display all records, you can use Full Join. This will show you all sales records, even if some products were only sold in one of the two years.

Writing a Full Join Query

Here's the basic syntax for a Full Join in SQL:

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

In this syntax:

  • SELECT column_name(s) selects the column(s) you want to include in your result set.
  • FROM table1 specifies the first table you want to join.
  • FULL JOIN table2 specifies the second table you want to join.
  • ON table1.column_name = table2.column_name specifies the condition for the join.

Let's consider an example. Suppose we have two tables: Orders and Customers.

The Orders table looks like this:

OrderIDProductQuantity
1Apples100
2Bananas150
3Grapes200

The Customers table looks like this:

CustIDNameCity
1JohnNew York
2JaneLondon
3BobParis

If we want to combine these two tables using a Full Join, we could write a query like this:

SELECT Orders.OrderID, Customers.Name, Orders.Quantity
FROM Orders
FULL JOIN Customers
ON Orders.OrderID = Customers.CustID;

This would return a table like this:

OrderIDNameQuantity
1John100
2Jane150
3Bob200

Conclusion

The Full Join is a powerful tool in SQL, allowing you to combine two or more tables and retain all records, whether they match or not. It's extremely useful when you want to analyze complete datasets and not lose any information due to non-matching records.

Remember to practice writing Full Join queries and understand when to use them. As with any SQL command, the more you use it, the more comfortable you'll become. Happy querying!