Årsagen er, at når en ualiased kolonne ikke findes i underforespørgslen, men findes i den ydre forespørgsel, antager Oracle, at du henviser til kolonnen fra den ydre forespørgsel.
Med aliaser vil den forespørgsel, du er forvirret over, se sådan ud:
select *
from test_values tv
where tv.tst_id in (select tv.tst_id2
from test_lookup tl
where tl.tst_value = 'findMe');
Forhåbentlig gør det tingene klarere?
Det problem, du ser, er et meget godt eksempel på, hvorfor du altid bør mærke dine kolonner med, hvilken tabel de kom fra - det gør det meget nemmere at vedligeholde forespørgslen til en start!