Ich wuerde sagen, das Datenmodell hat Unzulaenglichkeiten die gegen mindestens die 3. Normalform verstossen:
zwischenziele.zwz1 ... zwz2
deuten auf spalten hin. Dies sollte hingegen besser in Form von Datensaetzen (einzelne Rows/Records) gemacht werden:
Adressen
----------------------
- id
- strasse
- hausnummer
- plz
- stadt
- land
Profile
----------------------
- id
- sonstige attribute
Profile_Zwischenziele
----------------------
- Profil_ID
- Adressen_ID
- von mir aus noch ne reihenfolge (SORTORDER)
Dann koennte deine Abfrage ungefaehr so lauten:
SELECT P1.SORTORDER, A.strasse, hausnummer
FROM Profile_Zwischenziele P1
INNER JOIN Adressen A ON A.ID = P1.Adressen_ID
WHERE P1.Profil_ID = $id
ORDER BY P1.SORTORDER
Cheers, Frank