Hallo,
ich katalogisiere über ein PHP-Skript in Verbindung mit einer MySQL-Datenbank meine Zeitschriftensammlung. Bislang habe ich dies über zwei Tabellen getan:
-
Zeitschriften: Hier sind die grundlegenden Daten zu einer Zeitschrift abgelegt (z.B. „Der Spiegel“, „stern“, etc.) und eine Länderzuordnung. Weitere Angaben sind Erscheinungsweise, Erscheinungszeitraum, Kontaktdaten, etc. - quasi alle grundlegend statischen Daten zu einer Zeitschrift.
-
Ausgaben: Hier sind alle Ausgaben einer Zeitschrift abgelegt. Als Zuordnung wird die ID der Zeitschrift aus der anderen Tabelle verwendet. Hier werden alle spezifischen Daten einer einzelnen Ausgabe abgelegt: Seitenanzahl, Format, Auflage, etc.
Jetzt habe ich einige doppelte Ausgaben angesammelt, die ich in einer dritten Tabelle eintrage. Hier findet die Zuordnung über die ID der Ausgabe statt.
Mein Problem ist jetzt, diese doppelten Ausgaben in einer ansprechenden Tabelle auszugeben. Ich finde keinen eleganten Weg, dies umzusetzen. Mittels einer SQL-Abfrage über 3 Tabellen? Oder alternativ alle Daten auslesen, in ein Array schreiben und darüber gruppieren und sortieren?
Evt. hat mir hier jemand einen eleganten Rat. Ich probiere seit Ewigkeiten hin und her und bekomme es nicht hin.
Anbei meine Datenbankstruktur, gekürzt auf die relevanten Felder:
Tabelle 1: Zeitschriften
- ID
- Land
- Zeitschrift (Name)
Tabelle 2: Ausgaben
- ID
- Zeitschrift (ID aus Tabelle Zeitschriften)
- Ausgabe (Nummer)
- Seiten
- Format
Tabelle 3: Doppelte
- ID
- Ausgabe (ID aus Tabelle Ausgaben)
Wenn ich jetzt die doppelten Zeitschriften-Ausgaben ausgeben möchte, sollte dies in folgender Darstellung geschehen:
Deutschland
- Zeitschrift 1: 01, 02, 03…
- Zeitschrift 2: 02
- Zeitschrift 3: 01
- …
Österreich
- Zeitschrift 1: 05
- Zeitschrift 2: 01, 02
- …
Schweiz
- Zeitschrift 1: 01
Mein Problem: Eigentlich müsste ich nur die Tabelle „Doppelte“ abfragen und die Ergebnisse ausgeben. Die Krux dabei ist aber, dass dort nur auf eine Ausgabe der Tabelle „Ausgaben“ bezuggenommen wird. Sprich ich müsste zeitgleich auch die Tabelle „Ausgaben“ abfragen. Dort wiederum ist aber der Zeitschriftenname und das Land nicht abgelegt, so dass ich auch die Tabelle „Zeitschriften“ benötige.
Ich hoffe, ihr versteht meine Problematik und habt den ein oder anderen Rat für mich, wir ich am besten vorgehe
Liebe Grüße