2

所以,我正在做一个电影数据库,我有一张演员表和一张电影标题表。

在电影表中,我得到了演员的三列。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

1 回答 1

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

关系数据库设计
联结表

于 2013-01-11T23:53:43.120 回答