Some things that helped me
Every query response in SQL is a rectangular matrix [1]. JOINs add columns sideways. UNIONs add rows vertically[2].
[1] Which is why tree shaped data is awkward to query in SQL in one round-trip.
[2] From this you realize why the column names have to match to apply a UNION, and why recursion is something to do with a UNION.