@Swaz solution is better if you want to filter down the results directly from the database.

In my suggestion you would hit the database once, get all the user addresses and then filter the results further in memory. This is also useful if you want to show all the user's related addresses records and maybe highlight which made the user to return in the query.

But if you only want to show the user's matched addresses in the resultset go for the eager load constraining.