Frage zu einer Abfrage
Johannes
- datenbank
0 Frank Jonas0 Tom2
Ich bin Newbie im Datenbankensektor und möchte mir eine Datenbank für meine Filmsammlung erstellen. Ich habe dafür auch schon einen Datenbank entwurf gemacht. Der sieht so aus:
Tablelle Film:
FilmID
Titel
Beschreibung
...
Tabelle DID (DarstellerID):
DarstellerID
FilmID
Tabelle Darsteller:
DarstellerID
Name
....
Ich möchte jetzt zu irgendwie eine abfrage machen die es mir ermöglicht die namen der darsteller dem filmnamen zuzuordnen.
Anfangs wollte ich dies mit einer Unterabfrage lösen. Hab aber dann im Internet erfahren das dies mySQL nicht unterstützt. Hab es aber trotzdem versucht und es funkt nicht. Jetzt weiß ich nicht ob mein Befehl falsch war oder ob mySQL es wirklich nicht unterstützt. Könntet ihr in euch mal ansehen
SELECT film.titel, darsteller.name FROM film, darsteller WHERE film.filmid = 2 and darsteller.darstellerid in
(SELECT did.darstellerid, film.titel FROM did LEFT JOIN film USING (filmid) WHERE film.filmid = 2);
wahrscheinlich ist der Befehl e kompleter schwachsinn. Wenn ja dann sagt mir bitte wie ich es anders lösen kann.
mfg Johannes
Hallo Johannes,
Für einen speziellen Filmtitel:
SELECT film.titel, darsteller.name FROM film, did,darsteller WHERE film.filmid = 2 and darsteller.darstellerid = did.darstellerid AND did.filmid=film.filmid
für alle:
SELECT film.titel, darsteller.name FROM film, did,darsteller WHERE darsteller.darstellerid = did.darstellerid AND did.filmid=film.filmid GROUP BY film.titel
HTH
Gruß Frank
Hallo Johannes
SELECT film.titel, darsteller.name FROM film, darsteller WHERE film.filmid = 2 and darsteller.darstellerid in
(SELECT did.darstellerid, film.titel FROM did LEFT JOIN film USING (filmid) WHERE film.filmid = 2);
Select-Abfragen in Select-Abfragen sind in MySQL AFAIK (noch?) nicht möglich. Du kannst das ganze aber viel eleganter mit dem JOIN-Statement lösen. Wie das ganz genau geht kann ich dir nicht gerade Auswendig sagen, da ich mehr Access-DBs benutzen muss, es ist jedoch nicht all zu schwer. Wenn du der englischen Sprache einigermassen mächtig bist helfen dir http://www.w3schools.com/sql/sql_join.asp und http://www.mysql.org/documentation/mysql/bychapter/manual_Reference.html#JOIN weiter. Google ist auch dein Freund.
MfG und noch viel Spass
Tom2