Explain the difference between a LEFT JOIN, INNER JOIN, and FULL OUTER JOIN with practical use cases.