FooとBarの2つのテーブルがあるとします。FoosとBarsの間の多対多の関係のために、関連付けテーブルFoo_Barがあります。
ここで、基本的に、動的な数のBar制約に一致するFoosを選択するクエリが必要です。これを行うには、適切な数の結合を使用してクエリを動的に生成します。
SELECT *
FROM Foo F INNER JOIN
Foo_Bar FB1 ON FB1.FooId = F.Id AND FB1.BarId= Y INNER JOIN
Foo_Bar FB2 ON FB2.FooId = F.Id AND FB2.BarId= Z INNER JOIN
--one inner join for each constraint
もっと簡単な方法があるのだろうかと思います。基本的に次のようなクエリが必要です。
SELECT *
FROM Foo F
WHERE (Y, Z, ...) IN (SELECT BarId FROM Foo_Bar WHERE FooId = F.Id)
もちろん、これは有効なSQLではありませんが、動的クエリが目的の結果を達成するための唯一の合理的に移植可能な方法であるかどうか疑問に思っています。