Einzelnen Beitrag anzeigen
  #1  
Alt 17.09.2013, 18:25:25
loddoking loddoking ist offline
Anfänger
 
Registriert seit: Sep 2013
Alter: 41
Beiträge: 14
MySQL - Filmdatenbank - Filmtitel/Darsteller Abfrage

Ja, hallo erstmal...
Da ich mich neuerdings seit Jahren wieder mit mysql beschäftige sind meine Kenntnisse wtwas eingerostet. Also bitte etwas nachsicht üben.

Ich bastle zur zeit an einer etwas umfangreicheren Filmdatenbank.
Ich habe, vereinfacht dargestellt hier erstmal zwei Tabellen.

Darsteller
Darsteller_ID (Primärschlüssel), Name, Gebutsdatum usw...

Filme
Film_ID (Primärschlüssel), Filmtitel, Produktionsjahr usw..., Darsteller_ID 1, Darsteller_ID 2 usw...bis Darsteller_ID 70


Um redundante daten zu vermeiden habe ich nur in der Filmtabelle alle Dasteller_IDs aufgeführt die in dem Film vertreten sind.
Ich weiss nicht ob das die beste Möglichkeit für das Problem Film/Darsteller war. Aber andersherum wäre noch mehr Redundanz aufgetreten.

Ich habe nun die Dasteller_ID aus der Darstellertabelle als Primärschlüssel mit sämtlichen Darsteller_IDs in der Filmtabelle als Fremdschlüssel verknüpft.
Das Problem ist nun, dass ich bei der Abfrage nach Filmtitel und Darsteller ja nun kaum alle 70 Darsteller_ID Spalten in der Filmtabelle einzeln berücksichtigen kann.
Aber damit das gewünschte Ergebniss erfolgt müsste doch genau dies geschehen oder?

Per phpMyAdmin habe ich nun die einfache Abfrage mal zusammengeklickt die allerdings nur immer die erste Darsteller_ID Spalte in der Filmtabelle berücksichtigt.
Da aber nun der selbe Dasteller manchmal auch erst in der zweiten, dritten usw. Spalte auftritt bekomme ich immer nur ein unvollständiges Ergebniss!


SELECT `darsteller`.`Darstellername` , `filme`.`Filmtitel`
FROM `filme`
LEFT JOIN `filmdatenbank`.`darsteller` ON `filme`.`Darstller_ID` = `Darsteller`.`Darsteller_Id`
ORDER BY `darsteller`.`Darstellername` ASC
LIMIT 60 , 30


Gibt es da einen eleganteren Weg das Problem anzugehen? Oder habe ich da einen grundsätzlichen Fehler in der Datenbankstruktur drinn nach dem das gewünschte Ergebniss gar nicht erfolgen kann?

Die Abfragen sollen jeweils entweder alle Filmtitel zu einem Darsteller oder alle Darsteller zu einem Filmtitel liefern.