Graph
Full Outer Join

đź”—Full Outer Join

NEW

Also known as: Full Join

An SQL join that returns all rows from both tables, matching where possible and filling missing values with NULLs.

DESCRIPTION

A full outer join combines rows from left and right tables, including non-matching rows from both sides. Where join keys match, values from both tables appear in a single row; where they do not, columns from the missing side are NULL. It is useful for reconciliation, slowly changing dimensions audits, and coverage analysis. Performance depends on join key selectivity and indexing. Some systems lack FULL OUTER JOIN, requiring UNION of left and right joins. Careful null handling and coalescing are needed for clarity.

ALTERNATIVE DEFINITIONS

Microsoft Learn

A full outer join returns all rows from both joined tables, with nulls in columns from the table that lacks a matching row.

Clarifies inclusion of non-matching rows and null padding.

Source

PostgreSQL Documentation

FULL JOIN returns all rows from both tables, matching rows where available.

Summarizes semantics of FULL JOIN across both inputs.

Source

Join Condition Null Handling Join Keys Anti Join Semi Join Set Operations Merge

COMPETING TERMS

Inner Join Left Join Right Join

RELATIONS

KNOWLEDGE AREAS

Programming Languages Data Warehousing & BI Data Engineering

TARGET AUDIENCE

Data Engineer Data Analyst BI Specialist Data Modeler Software Developer

EXTERNAL SOURCES

TOP QUESTIONS

When should I use a Full Outer Join?

Use it for reconciliation and completeness checks where you need unmatched rows from both sides, such as comparing two systems’ records.

Category: Requirements

What if my database doesn’t support FULL OUTER JOIN?

Emulate it by UNION of a LEFT JOIN and a RIGHT JOIN filtered to non-matching rows.

Category: Implementation

What are common mistakes with Full Outer Join?

Forgetting to COALESCE keys for reporting and misinterpreting NULLs as missing data rather than non-matching joins.

Category: Mistakes

How does performance compare to other joins?

It can be more expensive due to processing unmatched rows from both sides; proper indexing helps.

Category: Performance

Can I filter to matched or unmatched rows after a Full Outer Join?

Yes, use predicates on NULLs in key columns to isolate matched or unmatched subsets.

Category: Implementation

What’s a competing approach?

Use LEFT JOIN or INNER JOIN if only matched or left-side completeness is required, simplifying queries and improving performance.

Category: Alternatives

Does order matter in a Full Outer Join?

Semantically it’s symmetric, but column ordering and naming depend on query definition.

Category: Misunderstanding

How do NULLs behave in Full Outer Joins?

NULLs represent the absent side of non-matching rows; downstream logic should COALESCE or handle accordingly.

Category: Requirements

Where to learn more about join types?

Study your database’s join documentation and practice with small tables to visualize results.

Category: Learning