Hallo,
ich staune, dass noch niemand geantwortet und sich den Mund über etwaiges miserables physikalisches Design deiner Datenbank zerissen hat.
Ich tue es auch nicht, aber dennoch würde ich dir anraten, dieses physikalische Design deiner Datenbank mal zu überdenken, so ganz koscher (i.e. zweckmäßig) scheint es mir nicht zu sein.
Deine Problemstellung ist imho in der Tat nicht ganz trivial. Was du machen möchtest, Zeilen zu Spalten transponieren bzw. pivotieren?!
PIVOT ist das Stichwort, nachdem du vielleicht einfach mal im Handbuch zu deinem MySQL 5.1 suchen solltest. Manche DBMSse haben so eine Funktion eingebaut.
Wenn du endlich viele (bzw wenige) Möglichkeiten abdecken musst, wie eben Adressen, dann käme vielleicht in Frage oft genug Self-JOIN(T)s zu drehen äh machen.
Ansonsten würde ich eher eine Stored Procedure empfehlen, die eine Temporäre Tabelle anhand der Vorgaben für die gewünschten "Feldanzeigen" erstellt und mittels mehrerer Abfragen auf die Quelltabellen diese temporäre Tabelle füllt und am Ende als Resultset zurückgibt. MySQL 5.1 sollte die Möglichkeit für Stored Procedures mitbringen.
Adios,
Frank