答えて
が存在することができ、性能の違いでこの&を変換する方法によって異なり、と思います。
最も重要な違いは、NULLの処理です。あなたのクエリはinとexistの両方で同じように動作するように見えるかもしれませんが、サブクエリがnullを返すとショックを受けるかもしれません。
nullsの存在が原因で失敗することがあります。
Joe Celkoの「smarties for SQL」を参照して、それぞれをいつ使用するかを理解してください。
要素の集合内の要素の現在の状態をテストしていないので、より簡単です。
グループ化(例:sum(x)= zまたはcount(*)> 3)を含むより複雑なクエリを処理することはできません。複数の条件(複数要素の一致など) 。
いくつかの状況では、より簡単ではないものが存在しません。私は一般的に、これが私が値のセットでキーフィールドの値をテストするところであることがわかります。経験則として
、私はそれがないよりも多くの状況をカバーとして存在しないことを好む。存在ていませんでは逆のためではなく、使用されているすべての状況のために使用することができます。
ませ、IN の違いとは、NOT NULL
値が結果に含まがある場合が透明になるEXISTS。例えば
:
create table test_a (col1 varchar2(30 char));
create table test_b (col1 varchar2(30 char));
insert into test_a (col1) values ('a');
insert into test_a (col1) values ('b');
insert into test_a (col1) values ('c');
insert into test_a (col1) values ('d');
insert into test_a (col1) values ('e');
insert into test_b (col1) values ('a');
insert into test_b (col1) values ('b');
insert into test_b (col1) values ('c');
insert into test_b (col1) values (null);
注:彼らは重要な違いは、test_b
がnull
値が含まれていることです。
select * from test_a where col1 not in (select col1 from test_b);
行が
select * from test_a where
not exists
(select 1 from test_b where test_b.col1 = test_a.col1);
戻り
col1
====
d
e
@ゴールド:私はあなたがこの答えを受け入れるべきだと思う、将来の訪問者が直接牛の目を取得するのに役立ちます。 – hagrawal
- 1. where句の違い - inとnot in
- 2. SQLのクエリでNOT INとNOT EQUALSの違いが異なる
- 3. myArray does not exist?
- 4. MySQLのNOT INとNOT
- 5. "x IS NULL"と "NOT(x IS NOT NULL)"の違いは何ですか?
- 6. not(!)とnot equal(!=)の違いはC++ですか?
- 7. SQLLiteオープンヘルパー - カラムdoes not exist
- 8. Laravel Method [where] does not existエラー
- 9. JavaDBエラー 'Schema' ROOT 'does not exist'
- 10. Mapbox {"message": "Tileset does not exist"}
- 11. NOT EXISTS NOT NOISISとNOTの違いについての質問
- 12. "not null"と "not null enable"に違いはありますか?
- 13. Hibernate - テーブルまたはビューdoes not existエラー
- 14. INSERT INTO WHERE NOT INまたはNOT EXISTテーブルのオリジンに重複があります
- 15. NOT INとSQL join
- 16. NOT IN(NULL)は常に何も
- 17. NOT INのHQLに相当するものは何ですか?
- 18. Python 2.7イメージ "pyimage does not exist"のTkinterラベル
- 19. HQLの "NOT IN"
- 20. アクティブレコードの "NOT IN"
- 21. INとNOT INを含む句
- 22. Linqクエリで 'IN'& 'NOT IN'
- 23. OracleとMS SQL ServerのNOT条件とNOT()の違い
- 24. PostgreSQLのNOT IN 'とサブクエリ
- 25. php artisan make:コントローラスロー:メソッドコントローラdoes not exist
- 26. Django Rest Framework "django.db.utils.ProgrammingError:relation" patient "does not exist"
- 27. IF NOT EXIST Recoredデータを選択
- 28. クエリNOT INアシスタント
- 29. CodeIgniter get_where()NOT IN
- 30. tSQL NOT INクエリ
ヌルの治療を忘れてはいけない返さない:http://stackoverflow.com/questions/1699424/what-the-differenceを間違っているoracle-query/1703712#1703712 –
Tom Kyteのリンクは間違いなく問題の根本に到達します。 –