Understanding SQL Joins: Inner, Left, Right, and Full Joins