SQL Joins Explained
INNER JOIN
Only rows that match in both tables
Drops unmatched rows on either side
LEFT JOIN
All rows from the left table
NULLs where the right table has no match
Typical use: all users, even those without orders
RIGHT JOIN
Mirror image of LEFT JOIN
Rarely needed; rewrite as LEFT JOIN for readability
FULL OUTER JOIN
All rows from both tables
NULLs on either side where no match exists
CROSS JOIN
Cartesian product: every row paired with every row
Result size = rows(A) × rows(B)
Common Mistakes
Missing ON condition produces an accidental cartesian product
Duplicate rows usually mean an unaggregated one-to-many
NULL never equals NULL in join conditions
作成者