学習課題として、クエリをステップに分割する必要があります。
ステップ 1. 映画のタイトルを一覧表示する
SELECT movie.title AS title
FROM movie
ステップ 2. ジュリー・アンドリュースが出演した映画を挙げてください:
SELECT movie.title AS title
FROM movie
JOIN casting
ON movie.id = casting.movieid
JOIN actor
ON casting.actorid = actor.id
WHERE actor.name = 'Julie Andrews'
ステップ 3. 主役。ここから、問題解決がどのように機能するかに応じて、ソリューションを変えることができます。
主演俳優の名前だけ知りたい場合。クエリは次のようになります。
SELECT actor.name as Name
FROM casting
JOIN actor
ON actor.id = casting.actorid
WHERE casting.ord =1
ただし、これを試してみると:
SELECT movie.title AS title
FROM movie
JOIN casting
ON movie.id = casting.movieid
JOIN actor
ON casting.actorid = actor.id
WHERE actor.name = 'Julie Andrews'
AND casting.ord =1;
ジュリー・アンドリュースが主演俳優である場所を見つけているだけです。
代わりに、actor テーブルに再び参加する必要があります (テーブルを結合する目的を説明するのに役立ついくつかのテーブル エイリアスを追加します)。
SELECT movie.title AS title, LeadActor.name AS LeadActorName
FROM movie
JOIN casting AS JulieCastings
ON movie.id = JulieCastings.movieid
JOIN actor AS JulieAndrews
ON JulieCastings.actorid = JulieAndrews.id
JOIN casting AS LeadActorCastings
ON LeadActorCastings.movieid = movie.id
JOIN actor AS LeadActor
ON LeadActor.id = LeadActorCastings.actorid
WHERE JulieAndrews.name = 'Julie Andrews'
AND LeadActor.ord =1;