What are the different types of SQL joins, and how do they differ in terms of performance and results?