Will subquery be executed first here with full scan? I have below query  

select * 
    from employee employee,
    (select address1.id 
        from address1 add1, address2 add2
        where add1.address2_id = add2.id ) address_data
    where emp.empId = 100
    and emp.address_id = address_data.id 
// index exists  on both columns i.e. address_id and id


I was expecting first subquery(address_data) will be executed internally and there will be full scan on address1 and address2 table. Then outer
query will be executed.

Revised understanding after looking at explain plain

But when I looked at explain plain looks like it is not happening. I found there was not any full scan on address1 and address2 table. Looks like
first outer query executed(which returned only record) and then only relevant records were fetched from address1 and address2 table(just fyi address tabl also returned 1 row). 

This strategy looks logical to me as there is no need to do full access of address tables in this case. 

My question - Is my revised understanding correct ? But I was under impression that sub query will always be executed first. Look like  I was wrong here ?
PLAN

Your understanding of the Plan seems correct.

Common Misunderstanding

People often forget that SQL is a declarative language, not a procedural language.

You should never assume sub-queries run in a certain order.