Можно и BeerWhereInput использовать. Только тут придется не одно пиво получать, а массив, то есть из него еще выдернуть конечную сущность.
Но в данном случае я бы поступил иначе. Если задача в том, чтобы получить именно заведения с конкретным условием внутри конкретного объекта пива, то я бы условие адреса добавил в условие получения адресов. Это в любом случае было бы логичней. Ведь если ты ищешь пиво с учетом адреса, значит и адреса тебе нужны конкретные. Схема тебе позволяет.
Ну а далее, если ты, получив данные, хочешь убедиться, что заведения нужные в нем есть, просто проверишь beer.places.length и все. Дальше решишь что делать, если заведений в нем нет.
Иначе тут делать нет смысла. Ведь у тебя четкий ID пива, так что по сути искать не надо. И не должно быть такого, что оно то есть, то нету. А то завтра добавят тебе пиво и одно заведение, где оно продается, у тебя появится страница на сайте, она проиндексируется, а потом заведение закроется и все, пиво будет отдавать 404. Это разве дело?