Как сделать фильтр, если связь между записью 1 ко многим?
Есть таблица места и таблица особенностей места.
У места может быть несколько особенностей.
Нужно сделать выборку с WHERE где место соответствует нескольким особенностям.
SELECT places.id, COUNT(features.name) as 'count_features'
FROM places
JOIN features ON places.id = features.place_id
WHERE features.name in ('wi-fi', 'river')
GROUP BY places.id
HAVING count_features = 2
select a.name
from mesta as a join mes_oso as b on (a.id = b.id_mesta)
join osobennosti as c on (b.id_os=c.id)
where c.name_os in ('wi_fi', 'coffee_to_go')
group by a.name
having count(*) = 2
В строке having count(*) = 2 должно стоять кол-во нужных условий. В примере совпадать должно 2. попадают только те места, где есть оба условия.