uburoi
Lt. Commander
- Registriert
- Aug. 2008
- Beiträge
- 1.403
Hallo zusammen!
Ich stehe gerade etwas auf dem Schlauch, daher würde ich gerne die hier gesammelte Kompetenz anzapfen …
Momentan bastele ich an einem Programm, mit dem ich meine Bibliothek verwalten will. In der Maske (Screenshot 1 A) kann ich mehrere Autoren für einen Titel eingeben; beim Einpflegen in die Datenbank (ER-Modell siehe Screenshot 2) werden die Autoren separat gespeichert. Die Autoren werden dann in einer Relationstabelle mit dem entsprechenden Titel verknüpft.
Nun meine Frage: Wenn ich die Titel mitsamt Autoren aus der Datenbank abrufe, möchte ich gerne wieder beide/alle Autoren eines Titels im Autor-Feld der Liste ausgeben (Screenshot 1 B). Jetzt verknüpfe ich bei der Abfrage der Relationstabelle ja erstmal die übrigen Tabellen mit dem JOIN-Befehl, etwa:
Hier habe ich aber dann das Problem, dass die Autoren mit Titel einzeln im Ergebnis stehen (etwa: "Deleuze | Anti-Ödipus" (Zeile 1), "Guattari | Anti-Ödipus" (Zeile 2)). Stattdessen hätte ich aber gerne alle Autoren in einem einzigen Feld (also: "Deleuze, Guattari | Anti-Ödipus").
Natürlich kann ich das Ergebnis der Abfrage dann im Programm entsprechend aufbereiten, was aber bei einer höheren Anzahl an Ergebnissen sicherlich weniger performant ist als eine Datenbankabfrage. Daher überlege ich nun, ob ich nicht mit einer Datenbank-Abfrage direkt das gewünschte Ergebnis erzielen kann. Hat jemand eine Idee?
(Ich hoffe, ich konnte mein Problem verständlich machen – ich bin nur Hobbyprogrammierer, kein Profi …)
Gruß und vielen Dank vorweg!
Jens
Ich stehe gerade etwas auf dem Schlauch, daher würde ich gerne die hier gesammelte Kompetenz anzapfen …
Momentan bastele ich an einem Programm, mit dem ich meine Bibliothek verwalten will. In der Maske (Screenshot 1 A) kann ich mehrere Autoren für einen Titel eingeben; beim Einpflegen in die Datenbank (ER-Modell siehe Screenshot 2) werden die Autoren separat gespeichert. Die Autoren werden dann in einer Relationstabelle mit dem entsprechenden Titel verknüpft.
Nun meine Frage: Wenn ich die Titel mitsamt Autoren aus der Datenbank abrufe, möchte ich gerne wieder beide/alle Autoren eines Titels im Autor-Feld der Liste ausgeben (Screenshot 1 B). Jetzt verknüpfe ich bei der Abfrage der Relationstabelle ja erstmal die übrigen Tabellen mit dem JOIN-Befehl, etwa:
SQL:
SELECT a.Nachname, t.Titel
FROM Rel_Autor AS r
JOIN Autor AS a ON a.AID = r.AID
JOIN Titel AS t ON t.TitelID = r.TitelID
Hier habe ich aber dann das Problem, dass die Autoren mit Titel einzeln im Ergebnis stehen (etwa: "Deleuze | Anti-Ödipus" (Zeile 1), "Guattari | Anti-Ödipus" (Zeile 2)). Stattdessen hätte ich aber gerne alle Autoren in einem einzigen Feld (also: "Deleuze, Guattari | Anti-Ödipus").
Natürlich kann ich das Ergebnis der Abfrage dann im Programm entsprechend aufbereiten, was aber bei einer höheren Anzahl an Ergebnissen sicherlich weniger performant ist als eine Datenbankabfrage. Daher überlege ich nun, ob ich nicht mit einer Datenbank-Abfrage direkt das gewünschte Ergebnis erzielen kann. Hat jemand eine Idee?
(Ich hoffe, ich konnte mein Problem verständlich machen – ich bin nur Hobbyprogrammierer, kein Profi …)
Gruß und vielen Dank vorweg!
Jens