select * from test.a where a =2 and b in (select a as a from test.a) union select * from test.a where a =2 and b in (select a as a from test.a)
but it was not cached, i put the SQL_CACHE and i found it in query cache =]very nice =)