Теперь я разрабатываю новостной сайт. У каждой новости есть теги. Пользователь может фильтровать новости по тэгам. Он имеет три поля (все поля являются необязательными для заполнения)Фильтрация элементов в MySQL
1) По крайней мере один тег должен быть в статье
2) Теги, которые должны быть в каждой статье
3) Теги, которые не должны быть в статьях
Теги, связанные с статьи с таблицей
`news_id`|`tag_id`
1 | 2
4 | 1
4 | 4
5 | 1
5 | 5
... | ...
Когда пользователь нажимает кнопку Save filter
я получаю теги идентификаторами. Как я могу фильтровать news_id
с одним запросом mysql?
Теперь у меня есть этот запрос
SELECT * FROM `app_news_newstag` GROUP BY `news_id` HAVING `tag_id` IN ('1', '4', '5') AND `tag_id` NOT IN ('2')
Я полагаю, что она охватывает первое и третье поля, но я застрял со вторым
Хм, но будет ли ваш запрос охватывать второе поле? – Rulisp
Ваш вопрос о 'news_id' и' tag_id' и обработке включения и исключения. Если у вас есть другой вопрос, вы должны задать ему вопрос, с образцами данных и желаемыми результатами. –