0
以下に説明するシナリオでは、次の2つの問合せで同じ結果が得られます。 "PRODUCTという表からすべてのモデルを選択しますが、別の表には表示されませんPC」 と呼ばれるこれは、次のコードで実現できます。Oracle Database 12cでNOT INをOUTER JOINに置き換える
select model
from product
where model not in(
select model from pc);
これはまた、外部結合を使用することによって達成することができます。
select product.model, pc.model
from product left join pc
on product.model = pc.model
where pc.model is null;
をこれら2つのクエリは同じ結果を得るよう見て、オンになっています他のものよりも好ましい? NOT IN JOINをNOT INの代わりに使用すると、利点がありますか?
それはインデックスが定義され、テーブルのサイズ、プラットフォームに依存し、などなどあなたは何が起こっているかの良いアイデアを得ることができますあなたが実行計画を見ているならば、 "ボンネットの下に"。この単純なケースでは違いはないと期待してください。 – Hogan
最近のほとんどのクエリオプティマイザは、両方のクエリを同じプランに最適化する必要があります。 – dasblinkenlight
[この質問](https://stackoverflow.com/q/173041/2224701)もご確認ください。私は個人的にはほとんど存在しません。 –