De reden hiervoor is dat wanneer een niet-gealiaseerde kolom niet bestaat in de subquery maar wel in de buitenste query, Oracle ervan uitgaat dat u verwijst naar de kolom uit de buitenste query.
Met aliassen ziet de zoekopdracht waar u niet uitkomt er als volgt uit:
select *
from test_values tv
where tv.tst_id in (select tv.tst_id2
from test_lookup tl
where tl.tst_value = 'findMe');
Hopelijk maakt dat de zaken duidelijker?
Het probleem dat u ziet, is een heel goed voorbeeld van waarom u uw kolommen altijd moet labelen met de tabel waar ze vandaan komen - het maakt het veel gemakkelijker om de zoekopdracht om te beginnen te onderhouden!