У меня есть три таблицы: posts, tags и posts_has_tags (которые облегчают отношения «многие ко многим» между записями и тегами).Сообщение может иметь любое количество тегов.
В таблице «posts» есть следующие столбцы: idposts text
В таблице «tags» есть следующие: idtags name
Что касается таблицы 'posts_has_tags': posts_idposts tags_idtags
Что я не могу сделать, так это предложить запрос для выбора всех сообщений, кроме тех, которые имеют тег (или теги) с определенным значением в назначенном им столбце «имя».Кажется, что он должен содержать «НЕ СУЩЕСТВУЕТ», но я не могу полностью обернуть его вокруг.
Спасибо за вашу помощь заранее.
РЕДАКТИРОВАТЬ:
Кроме того, возможно ли одновременно ограничить набор результатов определенными тегами?Например:
теги для исключения: a, b теги для включения: c
Запись с тегами 'a', 'f' не превращается в набор результатов (потому что нет, если этотеги включены).Запись с тегами 'a', 'b', 'c' также не входит в набор результатов (потому что это 'a' и 'b' - исключенные теги).Публикация с тегами 'c', 'f' превращает ее в набор результатов, потому что 'c' является включенным тегом.
FINAL EDIT Я наконец нашел решение, которое, кажется, работаети достаточно хорошо работает: http://www.mysqldiary.com/a-many-to-many-relationship-table-solving-the-exclude-relation-problem/