Explain the difference between an inner join, a left join, and an outer join, and describe a scenario where you would use each.