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.
PostgreSQL Documentation
FULL JOIN returns all rows from both tables, matching rows where available.
Summarizes semantics of FULL JOIN across both inputs.
RELATED TERMS
Join Condition Null Handling Join Keys Anti Join Semi Join Set Operations Merge
COMPETING TERMS
Inner Join Left Join Right Join
RELATIONS
- Broader: Outer Join
KNOWLEDGE AREAS
Programming Languages Data Warehousing & BI Data Engineering
TARGET AUDIENCE
Data Engineer Data Analyst BI Specialist Data Modeler Software Developer
EXTERNAL SOURCES
- Wikipedia - Join (SQL)
- Microsoft - T-SQL FULL OUTER JOIN reference
- PostgreSQL - Join types including FULL JOIN
- Oracle - Join operations overview
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