次のような相互参照テーブルがあります。
id document_id subject_id
1 8 21
2 5 17
3 5 76
4 7 88
5 9 17
6 9 76
7 2 76
ドキュメントとサブジェクトを照合します。ドキュメントは、複数のサブジェクトのメンバーになることができます。特定のドキュメントが特定のセット内のすべてのサブジェクトと一致するこのテーブルから行を返したいと考えています。たとえば、被験者のセットが与えられた場合:
(17,76)
相互参照テーブルのどこかで、(少なくとも) そのセットのすべてのサブジェクトに一致するドキュメントの行のみを返したいと考えています。上記のセットが与えられた場合、望ましい出力セットは次のようになります。
id document_id subject_id
2 5 17
3 5 76
5 9 17
6 9 76
テーブルの最後の行は返されないことに注意してください。これは、ドキュメントが必要な件名の 1 つにしか一致しないためです。
SQLでこれを照会する最も簡単で効率的な方法は何ですか?