Ponieważ interesuje Cię algorytm, Twoje pytanie wydaje się sprowadzać do różnicy między IN i EXISTS ponieważ twoje dwa przykłady są takie same, zapisz dla IN zmiana na EXISTS w usuwaniu z CHILD tabeli.
Przez lata napisano o tej różnicy całkiem sporo, ale w istocie IN jest zwykle używany tam, gdzie liczba komparatorów jest niewielka, podczas gdy EXISTS jest bardziej wydajny w przypadku podzapytań zwracających większą liczbę komparatorów (zwłaszcza jeśli te wartości zawierają dużą liczbę duplikatów).
IN musi ocenić każdy zwrócony komparator, podczas gdy EXISTS jest usatysfakcjonowany, gdy napotka pierwszy mecz.
Są od tego wyjątki i jeśli wyszukasz je w Google, znajdziesz je, ale ogólnie rzecz biorąc, wydaje się to być prawdą.
Tom Kyte (Wiceprezes Oracle) ma bardzo dobrą odpowiedź z wyjaśnieniami tutaj:https://asktom.oracle.com/pls/asktom/f?p=100:11:2148775836129778::::P11_QUESTION_ID:953229842074
TechRepublic ma również dobre wyjaśnienie tutaj:https://www.techrepublic.com/article/oracle-tip-understand-the-difference-between-in-and-exists-in-subqueries/529780
Mam nadzieję, że to pomoże...