2 人以上のキャスト メンバーを含むすべての映画のリストを見つけようとしています。
select title from Movie where movieID in(
select movieID
from Cast
join MovieHasCast
on Cast.castID = MovieHasCast.castID
where cast.name = 'gene wilder'
intersect
select movieID
from Cast
join MovieHasCast
on Cast.castID = MovieHasCast.castID
where cast.name = 'richard pryor')
私の代替案は次のようになります。
select title from Movie where movieID in(
select movieID
from Cast
join MovieHasCast
on Cast.castID = MovieHasCast.castID
where cast.name = 'gene wilder'
and movieID in (
select movieID
from Cast
join MovieHasCast
on Cast.castID = MovieHasCast.castID
where cast.name = 'richard pryor'))
これは、私がこれをどのように達成しているかのほんの一例です。ただし、このクエリを C# で動的に作成して、映画のリストをジャンル、キャスト メンバーなどでフィルター処理しています。パフォーマンスに関心があります。
これは、このタスクを達成するための最良の方法ですか? これを行うためのより良い方法があるように感じますが、特にユーザーが10個のキャストメンバーを選択でき、そのクエリが非常に大きくなり始めるため、特に方法がわかりません.0レコードを返す可能性があります.