I’ve found a “round-a-bout” way to do this… I run the query without the banner_cats and banner_towns conditions (and get rid of the posts_per_page). This will pull alot more results… Then, during the while loop, I check each post for an array_intersect for each meta keys. Since I only want 1 result, I break the loop if one is found.
While the solution works, I’d prefer to do this during the query process (to save resources)