私はSQLを学んでいますが、次の行の違いは何だろうと思っています:
WHERE s.parent IN (SELECT l.parent .....)
対
WHERE s.parent = (SELECT l.parent .....)
IN
サブクエリに複数の結果がある場合、エラーは生成されません。サブクエリによって返される結果に複数の値を含めることができます。
=
サブクエリに複数の結果がある場合、エラーが発生します。
「IN」を使用している場合、複数の値を比較できます....のように
select * from tablename where student_name in('mari','sruthi','takudu')
ただし、「=」を使用している場合、複数の値を比較することはできません
select * from tablenamewhere Student_name = 'sruth'
これが正しい答えであることを願っています
In
値を複数の値と一致させることができます。つまり、値が値のリストにあるかどうかをチェックします。
x in ('a', 'b', 'x')
x が値のリストにあるため、true の結果が返されます
1つの値のみを=
期待していますが、それは次のように単純です
x = y は false を返します
と
x = x は true を返します
一般的な経験則は次のとおりです。
=
は、比較する単一の値を想定しています。このような:
WHERE s.parent = 'father_name'
IN
= が機能しないシナリオ、つまり複数の値との比較が必要なシナリオで非常に役立ちます。
WHERE s.parent IN ('father_name', 'mother_name', 'brother_name', 'sister_name')
これが役に立つことを願っています!!!