Задавайте вопросы, мы ответим
Вы не зашли.
Есть простая таблица
id,tag_id,post_id
Как нетрудно догадаться она отображает взаимосвязь между тегом и записью в блоге. Как можно вывести запись у которой есть несколько тегов? Например несколько рядков в таблице могут выглядеть вот так
1 27 5
2 28 5
3 29 5
Как выбрать записи у которых есть все 3 тега? 27,28,29;
Неактивен
select * from table where post_id='твое число'
Неактивен
Можно написать «в лоб» — самообъединением таблицы:
SELECT .. FROM tablename t1, tablename t2 WHERE t1.tag_id = 27 AND t2.tag_id = 28 AND t1.post_id = t2.post_id.
Можно немного схитрить:
SELECT post_id, COUNT(*) AS c FROM tablename WHERE tag_id IN (27,28,29) GROUP BY 1 HAVING c = 3.
Неактивен
Спасибо! второй вариант рабочий!
Неактивен
Подскажите пожалуйста а можно ли выбрать все теги которые есть у записи модифицировав этот запрос
SELECT post_id, COUNT(*) AS c FROM tablename WHERE tag_id IN (27,28,29) GROUP BY 1 HAVING c = 3.
Без вложенных запросов?
Неактивен