ON Versus WHERE
For an inner join they behave the same. For an outer join they absolutely do not.
A condition in ON decides what counts as a match. A condition in WHERE filters the rows that came out. After a LEFT JOIN, the unmatched rows are full of NULLs, and a NULL fails every WHERE comparison, so those rows are removed and your LEFT JOIN has quietly become an inner one.
Mark this lesson complete
Signed in, your progress follows you to every device.