Důvodem je to, že když v poddotazu neexistuje sloupec bez přiřazení, ale existuje ve vnějším dotazu, Oracle předpokládá, že odkazujete na sloupec z vnějšího dotazu.
S aliasy by dotaz, ve kterém jste zmateni, vypadal takto:
select *
from test_values tv
where tv.tst_id in (select tv.tst_id2
from test_lookup tl
where tl.tst_value = 'findMe');
Doufejme, že je to jasnější?
Problém, který vidíte, je velmi dobrým příkladem toho, proč byste měli vždy označovat sloupce tabulkou, ze které pocházejí – pro začátek je mnohem snazší udržovat dotaz!