Я работаю с вашей стандартной настройкой трех таблиц
item_table
item_id
item_name
tag_table
tag_id
tag_name
tag_map
map_id
tag_id
item_id
Как это работает, должно быть очевидно всем, кто использовал похожую схему для своей архитектуры тегов, теперь, используя эту схему, у меня есть сценарий, в котором мне нужно распечатать результаты item_table, которые соответствуют нескольким тегам, то есть они должны представьте каждый тег для соответствия и распечатайте элемент из таблицы элементов, что-то теоретически написанное так:
SELECT i.item_id, i.item_name, t.tag_id, t.tag_name, m.tag_id, m.item_id FROM item_table AS i
JOIN tag_table AS t ON t.tag_id = m.tag_id
JOIN tag_map AS m ON m.item_id = i.item_id
WHERE t.tag_name = 'tag_one'
AND t.tag_name = 'tag_two'
И желаемый результат будет что-то вроде
элемент 1 (поскольку записи для элемента 1 назначают теги_one и tag_two на карте тегов)
пункт 2 (то же самое)
(но не пункт 3, потому что он имеет только tag_one или ни один из тегов)
Конечно, я знаю, что это не сработает, и почему, я просто привел неверный пример, чтобы подчеркнуть то, чего я пытаюсь достичь.
Заранее спасибо за любой совет.