LEFT JOIN is an outer-join operation that preserves every row in the left (first) table and pairs it with rows in the right (second) table that satisfy the join condition. When no matching row exists in the right table, the result set still includes the left-table row and populates the right-table columns with NULL. Because of this behavior, LEFT JOIN is ideal for finding unmatched records, optional relationships, or performing analytics that require complete left-side data. The keyword is interchangeable with LEFT OUTER JOIN in most dialects; OUTER is optional. Execution order: the database scans both tables, evaluates the ON predicate, produces matched rows, then adds NULL-extended rows for left-side records without a match. Performance hinges on proper indexing of join keys. Watch out for unintended row multiplication when the join condition is not selective or when one-to-many relationships are present.
left_table
(table or subquery) - the row-preserved side of the joinright_table
(table or subquery) - the nullable side of the joinON condition
(boolean expression) - defines how rows are matchedINNER JOIN, RIGHT JOIN, FULL JOIN, CROSS JOIN, ON clause, USING clause, NULL handling
SQL-92
A LEFT JOIN ensures every row from the left table appears in the result, matching rows from the right table when possible and inserting NULLs when no match exists.
Yes. LEFT JOIN A to B is functionally equivalent to RIGHT JOIN B to A, provided you also adjust selected columns and ON conditions.
Placing a filter on right-table columns in the WHERE clause effectively turns the query into an INNER JOIN. Move such filters into the ON clause or add an IS NULL check if you need to keep NULL-extended rows.
Outer joins can require extra work to produce NULL-extended rows, especially on large tables without indexes on join keys. Proper indexing and statistics generally keep performance acceptable.