2

私はSQLを学んでいますが、次の行の違いは何だろうと思っています:

WHERE s.parent IN (SELECT l.parent .....)

WHERE s.parent = (SELECT l.parent .....)

4

8 に答える 8

13

IN

サブクエリに複数の結果がある場合、エラーは生成されません。サブクエリによって返される結果に複数の値を含めることができます。

=

サブクエリに複数の結果がある場合、エラーが発生します。

于 2013-03-03T05:25:49.897 に答える
3

「IN」を使用している場合、複数の値を比較できます....のように

select * from tablename where student_name in('mari','sruthi','takudu')

ただし、「=」を使用している場合、複数の値を比較することはできません

select * from tablenamewhere Student_name = 'sruth'

これが正しい答えであることを願っています

于 2013-03-06T11:50:29.353 に答える
1

In値を複数の値と一致させることができます。つまり、値が値のリストにあるかどうかをチェックします。

x in ('a', 'b', 'x')x が値のリストにあるため、true の結果が返されます

1つの値のみを=期待していますが、それは次のように単純です

x = y は false を返します

x = x は true を返します

于 2013-03-03T05:41:09.210 に答える
1

一般的な経験則は次のとおりです。

=は、比較する単一の値を想定しています。このような:

WHERE s.parent = 'father_name'

IN= が機能しないシナリオ、つまり複数の値との比較が必要なシナリオで非常に役立ちます。

WHERE s.parent IN ('father_name', 'mother_name', 'brother_name', 'sister_name')

これが役に立つことを願っています!!!

于 2014-06-04T22:02:38.323 に答える