On Fri, Apr 13, 2012 at 11:59 AM, Jack Christensen
<jackc(at)hylesanderson(dot)edu> wrote:
> On 4/13/2012 11:39 AM, Mike Blackwell wrote:
>>
>> Could someone please explain to me why the following select does not
>> result in a syntax error? (9.0.3)
>>
>> begin;
>>
>> create table x( c1 integer , c2 integer);
>> create table y( c3 integer, c4 integer);
>>
>> select * from x where c2 in ( select c2 from y where c4 = 2 );
>>
>>
>> rollback;
>>
>> Mike
>>
> Your subquery is correlated with the outer query. So the c2 in the subquery
> is referring to table x.
This is a good example of why one should always use a table alias
prefix when using subqueries.