2

私は映画のデータベースを作成しており、俳優用のテーブルと映画タイトル用のテーブルを 1 つずつ用意しています。

Movies テーブルには、Actors の 3 つの列があります。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

それから私はほとんど私が欲しいものを手に入れます。映画のタイトルはわかりますが、映画ごとに俳優は 1 人だけです。俳優が 2 人か 3 人いる映画では、どうすればいいのかわかりません。

より理解しやすいように、コードに変換する必要がありました。元の形のコードは機能するので、ここで 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 に答える