Explain the difference between an INNER JOIN, LEFT JOIN, and FULL OUTER JOIN with practical examples.