Join-Abfrage: Ergebnis in Variable übergeben
Unknown Legend
- datenbank
1 Ilja
Hallo, ihr Experten!
Vorab: Ich hab' nicht viel Ahnung, bin dabei, mir welche anzueignen, und ich hab' die Lösung auf mein Problem nicht ergoogeln können, leider.
Folgendes:
Ich habe auf meiner Homepage eine Tourdatenbank, in der für diverse Bands aktuelle Tour-Termine hinterlegt sind. Der Aufbau der Tabelle (ich nenne sie mal Tour-Tabelle) ist folgender:
ID
Band
Band1
Band2
Datum
Location
Ort
Von Interesse für mein Problem sind allerdings nur die Band-Felder. Die sehen beispielsweise folgendermaßen aus:
Band: AC/DC
Band1: Iron Maiden
Band2: Judas Priest
(ja ... ich bin ein Altrocker, es stimmt ... *ggg*)
Nun habe ich zugleich eine Tabelle, in der diverse Band-Homepages hinterlegt sind, die Homepage-Tabelle. Folgender Aufbau:
ID
Band
Homepage
Wenn nun auf meiner Seite die Tourdaten ausgegeben werden, möchte ich, falls vorhanden, die Bandbezeichnung aus der Tour-Tabelle mit dem Link aus der Homepage-Tabelle hinterlegen. Die Ausgabe wäre also folgende:
01.01.2009 AC/DC, Iron Maiden, Judas Priest - Dorfclub, Hintermond
wobei die Band-Namen jeweils Links wären zu den Homepages. Das wäre mein Ziel ...
Nun habe ich die beiden Tabellen mit einer join-Abfrage verknüpft, das funzt im Prinzip auch ganz gut. Allerdings liefert mir diese Abfrage nur die Homepage für die erste Band. Also hier die Abfrage:
$abfrage = "SELECT * FROM Tourtabelle LEFT JOIN Homepagetabelle ON Tourtabelle.Band = Tourtabelle.Band ORDER BY Band, Datum";
Wie gesagt, im oben genannten Beispiel würde mir mit dieser Abfrage die Homepage für die erste Band, also AC/DC, übergeben. Ich möchte aber, falls vorhanden, die Homepages für alle drei Bands übergeben haben.
Oha .. ich hoffe, das war nun nicht zu wirr. Gibt es eine Möglichkeit, ein join-Ergebnis in einer Variablen zu hinterlegen? Ich denke, das ist wohl die Kernfrage dabei ...
Tut mir leid, wenn das nun ziemlich unbeholfen klingt an der Stelle, aber, wie gesagt: Ich hab' nicht wirklich viel Ahnung und mir die Lösung meines Problems nicht ergoogeln können. Danke euch vorab ... :)
yo,
ID
Band
Band1
Band2
Datum
Location
Ort
dort machst du einen typischen anfänger fehler. zwischen den tabellen (entitäten) tour und band besteht eine sogenannte n:m beziehung, sprich eine band kann an mehreren touren teilnehmen und eine tour kann mehrere bands haben. man löst solche m:n bziehungen auf, indem man eine beziehungstabelle erstellt, die unter anderem jeweils den fremdschlüssel der beiden tabellen enthält. dann bekommst du auch keine probleme, wenn man mehr als drei bands bei einer tour dabei sind. auch dein problem mit den anzeigen der hompages löst sich dann mehr oder weniger von alleine.
noch ein hinweis, du solltest über die id-schlüssel der tabelle als join bedigung gehen und nicht über die spalten band.
Ilja