SQlite3を使っています。思ったような結果が出せないのでお願いします。
特定の俳優(A)と共演したことのある俳優の名前をダブりなく出したい。
その結果には特定の俳優Aの名前は含まない結果を出したい。
特定の俳優は「Art Garfunkel」です。
・movie表:
id : 映画のID
title : 映画名
yr : 公開年
director: 監督
budget :予算
gross :興行収入
・actor表:
id: 俳優・女優のID
name :俳優・女優の名前
・casting表:
movieid: movie表のidへの外部キー
actorid: actor表のidへの外部キー
ord : 俳優の出演表中の順位(主演1,助演2)
一行目で表示させるものをdistinctでnameダブらないようにactor表から検索する、ただし条件として「共演していた」事が必要になるのでwhereで条件指定
3つの表の共通項を利用して結合させてってやってみたのですが、結果としては検出される俳優の名前が圧倒的に少ない。
select distinct name from actor where movieid in ( select m.id from movie m join actor a on(c.actorid = a.id) join casting c on(c.movieid = m.id) and a.name = 'Art Garfunkel' );
以下を実行するとArt Garfunkelの出演作品の映画IDの一覧は出るのでこれにこだわって試行錯誤してるから駄目なんでしょうか?
select m.id from movie m join casting c on(c.movieid = m.id) join actor a on(c.actorid = a.id) where a.name = 'Art Garfunkel';
回答1件
あなたの回答
tips
プレビュー