多対多形式のテーブルが 3 つあります。つまり、テーブル A、B、および AB は期待どおりに設定されています。
A ID のセットが与えられた場合、すべての ID に一致する AB の行のみを選択する必要があります。
次のようなものは機能しません。
"SELECT * FROM AB WHERE A_id = 1 AND A_id = 2 AND A_id = 3 AND ..." 1 つの行に複数の A_id が含まれないため
SQLステートメントでORを使用すると、少なくとも1つのA IDを持つすべての結果が得られるため、あまり良くありません(ただし、すべてのIDを持つ行のみが必要です)。
編集:
申し訳ありませんが、説明する必要があります。実際の多対多の関係が実際の問題に関連しているかどうかはわかりません。表の概要は次のとおりです。
Table People
int id
char name
Table Options
int id
char option
Table peoples_options
int id
int people_id
int option_id
そのため、人のリスト、オプションのリスト、オプションと人の表があります。
したがって、(1、34、44、...) などのオプション ID のリストが与えられた場合、すべてのオプションを持つ人だけを選択する必要があります。