Я внедряю систему тегов для сайта. Существует несколько тегов на объект и несколько объектов на тег. Это достигается поддержанием таблицы с двумя значениями на запись, одним для идентификаторов объекта и тега.
Я ищу написать запрос, чтобы найти объекты, которые соответствуют заданному набору тегов. Предположим, у меня были следующие данные (в формате [объект] -> [теги] *)
apple -> fruit red food
banana -> fruit yellow food
cheese -> yellow food
firetruck -> vehicle red
Если я хочу соответствовать (красный), я должен получить яблоко и пожарную машину. Если я хочу соответствовать (фрукты, еда), я должен получить (яблоко, банан).
Как мне написать SQL-запрос и сделать то, что я хочу?
@ Джереми Рутен,
Спасибо за ваш ответ. Используемая нотация использовалась для предоставления некоторых примеров данных - в моей базе данных есть таблица с 1 идентификатором объекта и 1 тегом на запись.
Во-вторых, моя проблема в том, что мне нужно получить все объекты, которые соответствуют всем тегам. Подставляя ваше ИЛИ вместо И, вот так:
SELECT object WHERE tag = 'fruit' AND tag = 'food';
Не дает результатов при запуске.