Secara umum, INNER JOIN dan EXISTS adalah hal yang berbeda.
Yang pertama mengembalikan duplikat dan kolom dari kedua tabel, yang terakhir mengembalikan satu catatan dan, sebagai predikat, mengembalikan catatan hanya dari satu tabel.
Jika Anda melakukan inner join pada UNIQUE kolom, mereka menunjukkan kinerja yang sama.
Jika Anda melakukan inner join pada recordset dengan DISTINCT diterapkan (untuk menghilangkan duplikat), EXISTS biasanya lebih cepat.
IN dan EXISTS klausa (dengan korelasi equijoin) biasanya menggunakan salah satu dari beberapa SEMI JOIN algoritma yang biasanya lebih efisien daripada DISTINCT di salah satu meja.
Lihat artikel ini di blog saya:
- IN vs. BERGABUNG vs. ADA