Hello Vinayak.
Your WHERE clause must filter on a field from the table or view your are requesting from. KeyField is a field from your current view (view1). So if you need to filter on the field keyfield, another view on top of view1 is totally justified.
Now, if you need to perform the filter before, your WHERE clause has to work with Table1.field3 AND Table1.field4.
Regards,
Sebastien