Alasannya adalah karena ketika kolom unaliased tidak ada di subquery tetapi ada di outer query, Oracle menganggap Anda merujuk ke kolom dari outer query.
Dengan alias, kueri yang membuat Anda bingung akan terlihat seperti:
select *
from test_values tv
where tv.tst_id in (select tv.tst_id2
from test_lookup tl
where tl.tst_value = 'findMe');
Mudah-mudahan, itu membuat segalanya lebih jelas?
Masalah yang Anda lihat adalah contoh yang sangat baik tentang mengapa Anda harus selalu memberi label pada kolom Anda dengan tabel asalnya - hal ini membuat lebih mudah untuk mempertahankan kueri sebagai permulaan!