Не знаю как написать запрос в Mysql в заголовке не опишу. Смотрите под катом
Есть простая таблица
id,tag_id,post_id
Как нетрудно догадаться она отображает взаимосвязь между тегом и записью в блоге. Как можно вывести запись у которой есть несколько тегов? Например несколько рядков в таблице могут выглядеть вот так
1 27 5
2 28 5
3 29 5
Как выбрать записи у которых есть все 3 тега? 27,28,29;
Самое простое
SELECT t1.* FROM table as t1, table as t2, table as t3 WHERE (t1.tag_id=27 and t2.tag_id=28 and t3.tag_id=29) and (t1.post_id = t2.post_id) and (t2.post_id = t3.post_id);
Можно наверное усовершенствовать запрос с помощью джоинов и тп…