Есть таблица с задачами (tasks, имеет кучу полей, в данном случае важно только поле task_id - INT UNSIGNED, PRIMARY KEY - уникальный идентификатор каждой задачи). К каждой задаче есть тэги (таблица tags, поля task_id и tag, записи не могут повторятся (PRIMARY KEY (task_id, tag))). Суть: нужно выбрать задачи, имеющие определенный набор тэгов. Запрос генерируется веб-приложением.
Пока только примерно такая идея:
SELECT *
FROM tasks t
WHERE (SELECT task_id FROM tags WHERE tag='sometag' AND task_id=t.task_id) AND (SELECT task_id FROM tags WHERE tag='sometag2' AND task_id=t.task_id);
PS. MySQL. SQL занимаюсь меньше недели, поэтому за возможное решение проблемы через /dev/ass не пинать.
PPS. Структуру таблиц могу поменять при необходимости.