Merhaba arkadaşlar, bu yazımızda subquery içinde EXISTS ve NOT EXISTS kullanımı inceleyeceğiz.IN ve NOT IN‘e en iyi alternatif.

Kendi yapmış olduğum testlere göre EXISTS ve NOT EXISTS 65 kat daha hızlı. Kullanımı where den sonra exists() veya not exists(subquery) şeklindedir.

İki tablomuzun olduğunu varsayalım, stok ve stok hareket. (stok:ürünlerimiz, ürünlerimizin giriş çıkış kayıtları).

stock tablomuzda ID,STOCKCODE,STOCKNAME alanları olsun,
stocktrans tablomuzda ID,STOCKID,ENTRYPIECE(Giriş miktarı),EXITPIECE(Çıkış miktarı).

Stok tablosunda olup stok hareket tablosunda olmayan kayıtları ve her iki tabloda olan kayıtları bulalım. Tabiki burda in veya not exists kullanmak doğru olmaz ama örnek amaçlı olarak kullanacağız. (join kullanılmalı 🙂 )

Önemli bir not: exists ve not exists subquerisinde SELECT * deymiyle başlamalıdır.

Kullanımı bu şekilde 🙂