Това не е грешка. Тъй като не сте квалифицирали колоната, Oracle я интерпретира като текущата стойност на колоната от таблица A - която е в обхвата (вж. съответна подзаявка). Така подзаявката просто произвежда толкова дубликати на стойността на тази колона, колкото има редове в таблица B.
in
условието ще стане вярно или невярно въз основа на това. Винаги ще бъде false, когато таблица B е празна. Също така ще бъде невярно в случаите, когато Col_A
е нула. Но във всички останали случаи ще е вярно. Така че ще получите толкова резултати, колкото има редове в таблица А, които имат ненулева стойност в Col_A
, освен когато таблица Б е празна, в който случай няма да получите резултати.