Hallo zusammen, ich bin gerade dabei mich wieder bisschen mit SQL vertraut zu machen. Ich hab mir testhalber mal ne Filmdatenbank gebaut.
--Erstellen der Tabellen
CREATE TABLE Movie (Movie_ID int identity primary key, Movie_Title nvarchar(50)not null, Movie_OTitle nvarchar(50) null, Movie_Genre int null, Movie_Regie int null);
CREATE TABLE Genre (Genre_ID int identity primary key, Genre_Name nvarchar(50)not null);
CREATE TABLE Regie (Regie_ID int identity primary key, Regie_Name nvarchar(50)not null);
CREATE TABLE Darsteller (Darsteller_ID int identity primary key, Darsteller_Name nvarchar(50)not null);
--Befüllen der Tabellen mit Beispieldaten
INSERT INTO Movie(Movie_Title, Movie_OTitle, Movie_Genre, Movie_Regie)values ('Gladiator','Gladiator' ,'2','3');
INSERT INTO Movie(Movie_Title, Movie_OTitle, Movie_Genre, Movie_Regie)values ('Stirb langsam','Die Hard' ,'1','1');
INSERT INTO Movie(Movie_Title, Movie_OTitle, Movie_Genre, Movie_Regie)values ('Der Pate','The Godfather' ,'3','2');
INSERT INTO Genre(Genre_Name)values ('Action');
INSERT INTO Genre(Genre_Name)values ('Monumentalfilm');
INSERT INTO Genre(Genre_Name)values ('Drama');
INSERT INTO Regie(Regie_Name)values ('John McTiernan');
INSERT INTO Regie(Regie_Name)values ('Francis Ford Coppola');
INSERT INTO Regie(Regie_Name)values ('Ridley Scott');
INSERT INTO Darsteller(Darsteller_Name)values ('Russell Crowe');
INSERT INTO Darsteller(Darsteller_Name)values ('Bruce Willis');
INSERT INTO Darsteller(Darsteller_Name)values ('Oliver Reed');
INSERT INTO Darsteller(Darsteller_Name)values ('Marlon Brando');
INSERT INTO Darsteller(Darsteller_Name)values ('Al Pacino');
INSERT INTO Darsteller(Darsteller_Name)values ('Alan Rickman');
--Beziehungstabellen anlegen
CREATE TABLE Movie_Darsteller (Movie_Darsteller_ID int identity primary key, Movie_ID int null, Darsteller_ID int null);
INSERT INTO Movie_Darsteller (Movie_ID, Darsteller_ID) values ('1','1');
INSERT INTO Movie_Darsteller (Movie_ID, Darsteller_ID) values ('1','3');
INSERT INTO Movie_Darsteller (Movie_ID, Darsteller_ID) values ('2','2');
INSERT INTO Movie_Darsteller (Movie_ID, Darsteller_ID) values ('2','6');
INSERT INTO Movie_Darsteller (Movie_ID, Darsteller_ID) values ('3','4');
INSERT INTO Movie_Darsteller (Movie_ID, Darsteller_ID) values ('3','5');
--Abfrage erstellen
SELECT Movie_Title, Movie_OTitle, Genre_Name, Regie_Name, Darsteller_Name
FROM Regie INNER JOIN ((Genre INNER JOIN Movie ON Genre.Genre_ID = Movie.Movie_Genre) INNER JOIN (Darsteller INNER JOIN Movie_Darsteller ON Darsteller.Darsteller_ID = Movie_Darsteller.Darsteller_ID) ON Movie.Movie_ID = Movie_Darsteller.Movie_ID) ON Regie.Regie_ID = Movie.Movie_Regie;
Wenn die Abfrage erstellt wurde wird es so dargestellt das jeder Film einmal mit jedem Darsteller usw. angezeigt wird. Siehe Anhang.
Jetzt meine Frage.Ist das normal ? Kann man das nicht so darstellen das jeder film nur einmal dargestellt wird mit allen Schauspielern ? Ich vermute mal eher nicht oder ?
Danke im voarus für die Unterstützung