2013-01-11 193 views
2

因此,我正在制作一个电影数据库,并且我为演员和电影名称分配了一张桌子。女士Access | INNER JOIN查询的问题

在电影表中,我得到了Actors三列。 Actor_1,Actor_2,Actor_3。在这些字段中,我只写入与Actors表中的行对应的数字。

每个演员有这些列:

Actor_ID, Firstname, Surname 

现在,如果我这样做查询:

SELECT movie.titel, firstname + ' ' + surname AS name 

FROM Movie 

INNER JOIN Actors ON movie.actor_1=actor.actor_id 

然后我得到几乎我想要的东西。我获得了电影片名,但每部电影只有一名演员。我不知道我应该为那些有两三个演员的电影做些什么。

我不得不翻译成代码,所以它会更容易理解。在原始形状的代码工作,所以不介意,如果它不是100%在这里。只要感谢我能做些什么的一些指示。

回答

4

您需要更改表格设计以包含结点表格。所以,你将有

Movies 
ID 
Etc 

Actors 
ID 
Etc 

MoviesActors 
MovieID 
ActorID 
Etc 

您的查询可能是:

SELECT m.MovieTitle, a.ActorName 
FROM Actors a 
INNER JOIN (Movies 
INNER JOIN MoviesActors ma 
ON m.ID = ma.MovieID) 
ON a.ID = ma.ActorID 

Relational database design
Junction tables