Tach!
Nochmal gelesen, denke ich, hab ich dein Anliegen verstanden. Zuerst dachte ich, du hast ein paar Labels, und willst dazu die passenden Daten haben, die sich in irgendeinem der Felder feld1 bis feld4 befinden können. Stattdessen möchtest du aber primär die "infodaten" befragen und dazu die Label anzeigen.
Das ergebnis sollte wie folgt aussehen:
Vorname Karl
Nachname Meier
Stadt Köln
Plz 22222
Und das vermutlich für jeden abzufragenden Datensatz der infodaten-Tabelle.
Mit zwei SQL Abfragen und späteren Zusammenbau in PHP bekomme ich das hin.
Mich würde interessieren, ob man dies auch mit einer einzigen Abfrage hinbekommen kann?
Allerdings hast du in der einen Tabelle die Daten "nebeneinander" (in einem Datensatz) und in der anderen "untereinander" (in 4 Datensätzen). Dazu brauchst du meines Erachtens 4 Joins. Die info muss 4x an infodaten gejoint werden, für jedes der felder feld1..4 einmal. Damit ergibt sich dann ein Ergebnisdatensatz mit den Informationen aus den folgenden Feldern:
i1.infolabel, infodaten.feld1, i2.infolabel, infodaten.feld2, i3.infolabel, infodaten.feld3, i4.infolabel, infodaten.feld4
i1 bis i4 sind die 4 Joins der info-Tabelle. Mit den Joins hast du einen ziemlichen Aufwand, nur um die Labels mit dabeistehen zu haben. Der lohnt sich meiner Meinung nach nur dann, wenn du Infodaten unterschiedlicher Couleur in einer Ergebnismenge haben möchtest. Wenn hingegen die Bedeutungen von feld1 bis feld4 in der Ergebnismenge immer dieselben sind, kommst du einfacher mit zwei Abfragen und indem du für die Ausgabe über PHP die Bezeichnung zum Feldinhalt dazuschreibst.
dedlfix.