In the ANSI-SQL join syntax, OUTER appears only in combination with LEFT, RIGHT, or FULL before the JOIN keyword (e.g., LEFT OUTER JOIN). An outer join returns all rows from one or both participating tables even when no matching row exists in the other table, filling non-matching columns with NULL. The word OUTER is purely descriptive – omitting it (LEFT JOIN) produces identical results because most SQL engines default to an outer interpretation when LEFT, RIGHT, or FULL precede JOIN. OUTER cannot be used alone, cannot follow INNER or CROSS, and has no impact outside join clauses. Some dialects lack FULL OUTER JOIN but still allow OUTER in LEFT or RIGHT joins. Because OUTER is optional, its primary purpose is readability and standards compliance rather than functionality.
JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, INNER JOIN, CROSS JOIN, USING, ON clause, NULL handling
ANSI SQL-92
OUTER marks a join that keeps rows that fail to match, filling the other table's columns with NULL.
No. Including OUTER improves readability but omitting it yields the same result.
PostgreSQL, SQL Server, and Oracle support FULL OUTER JOIN. MySQL and SQLite do not.
Use a UNION of a LEFT JOIN and a RIGHT JOIN filtered to non-overlapping rows.