題ではピンとこない感じですが、挙動を見れば一発です。例は次です。
-- テーブル定義 create table Test(id_a integer, id_b varchar(100)); insert into Test(id_a, id_b) values(1, "Hello"); insert into Test(id_a, id_b) values(1, "Good Night"); insert into Test(id_a, id_b) values(2, "Good Morning"); -- 複数カラム単位で絞り込み select * from Test where (id_a, id_b) in ( (1, "Hello"), (2, "Good Morning") ); -- 結果 -- id_a id_b -- 1 Hello -- 2 Good Morning
WHERE IN では例の様に括弧を使って複数カラムをまとめて絞り込むクエリを作れます。例を試したのは MySQL と PostgreSQL ですが、パッとググった感じ SQL 標準でありほとんどの SQL を使うデータベースで使用できそうです。ただ SQLServer についてはできないという話もあったので SQLServer については怪しいです(古い記事なので改善されている可能性も十分あります)。
MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.4.2 比較関数と演算子#operator_in
例の様に複数カラムでまとめて WHERE IN をすることによって複合主キーを持つテーブル相手でも一発のシンプルな SQL で複数のレコードを引っ張ってこれます。