Упрощённо есть три таблицы:
table objects ( id => bigserial, 'name' => varchar(200) );
table tags ( id => bigserial, 'tagname' => varchar(200) );
table objects_tags ( 'object_id' => bigint, 'tag_id' => bigint );
Соответственно, объекты и теги связаны как «многие ко многим» через таблицу objects_tags
Что нужно: выбрать объекты, у которых есть теги «tag1», «tag2», «tag3». При этом не один из трёх, а точно три. Не четыре, не два, а именно эти три тега с этими именами. Следующая выборка может быть уже по двум тегам.. следующая - по шести... то есть, один запрос как нечто вроде
... WHERE 'tags'.'tagname' IN ('tag1', 'tag2', 'tag3')
но тут один из... а надо все :)
Ткните в манул, плиз.