Q&A
Q&AWhy did a SQL join unexpectedly multiply my totals?
A one-to-many join changes row grain; multiple child joins can multiply each other.
Read the concise answer
Check the cardinality of each join. Joining one order to several lines produces multiple rows per order; joining another one-to-many table can multiply those rows again. Aggregate each relation to the intended grain before joining or use EXISTS when you only need to test presence. DISTINCT is not a reliable repair for incorrect join logic.