There is a great write up about the differences between JOINs in MySQL here:
Basically, a JOIN only returns records that match.
A LEFT JOIN will returns all rows that match and IN ADDITION all rows in the left table that do not match as well.
A RIGHT JOIN is similar to left except all rows from the RIGHT table are returned.
INNER JOIN returns all rows in both tables.