Je vais aborder la petite mais cruciale partie de la question :
Fondamentalement, la requête joint deux tables. MAIS, les deux tables jointes sont en fait la même table - "zips" (en d'autres termes, elle joint la table "zips" à elle-même"). Bien sûr, puisque le reste de la requête doit comprendre quand vous faites référence au première copie de la table "zips" et quand à la deuxième copie de la table "zips", vous donnez un alias de table à chaque copie - à savoir, "a" et "b"'.
Ainsi, "b.xxx" signifie "colonne xxx des zips de table, de la DEUXIÈME instance de cette table jointe".