次のクエリがあります。
SELECT A.id FROM logsen_alertes A
WHERE
( SELECT LA2.type_colocation_id
FROM logsen_liaisons_annonces_types_colocations LA2
WHERE LA2.annonce_id = 25 AND LA2.annonce_type = 4
)
IN
( SELECT L4.souhait
FROM logsen_liaisons_alertes_souhaits L4
WHERE L4.alerte_id = A.id
)
このクエリは、最初のサブクエリが 1 つの値のみを返す場合にうまく機能します。これは、一連の値の中から 1 つの一意の値を探して IN() が機能するためです。最初のサブクエリが 2 つ以上の値を返すと、MySQL は「サブクエリが複数の行を返します」と返します。最初のサブクエリが複数の値を返す場合、クエリを機能させるにはどうすればよいですか? 「[これらの値のいずれか] で見つかった [これらの値のいずれか] の場所」のようなものですか?