Karena Anda tertarik dengan algoritme, pertanyaan Anda tampaknya menjadi perbedaan antara IN
dan EXISTS
karena dua contoh Anda sama, simpan untuk IN
mengubah ke EXISTS
di hapus dari CHILD
tabel.
Ada cukup banyak tulisan tentang perbedaan ini selama bertahun-tahun tetapi pada intinya IN
umumnya digunakan di mana jumlah pembanding kecil sedangkan EXISTS
lebih efisien untuk subkueri yang mengembalikan jumlah komparator yang lebih besar (terutama jika nilai tersebut berisi banyak duplikat).
IN
harus mengevaluasi setiap pembanding yang dikembalikan saat EXISTS
puas ketika bertemu pertandingan pertama.
Ada pengecualian untuk ini dan jika Anda mencarinya di Google maka Anda akan menemukannya tetapi secara keseluruhan ini tampaknya benar.
Tom Kyte (Oracle VP) memiliki jawaban yang sangat bagus dengan penjelasan di sini:http://asktom.Oracle.com/pls/asktom/f?p=100:11:2148775836129778::::P11_QUESTION_ID:953229842074
TechRepublic juga memiliki penjelasan yang bagus di sini:http://www.techrepublic.com/article/Oracle-tip-understand-the-difference-between-in-and-exists-in-subqueries/5297080
Semoga membantu...