Я имею отношение к вопросу Выбор элемента, соответствующего нескольким тегам , где его спросили, как выбрать элементы с тегами с идентификаторами 1 и 2.
Данный ответ работаетотлично.
Но что, если мне нужны все элементы с тегами 1 и 2, но не с тегами 3 ИЛИ 4?
Возможно ли это сделать одним запросом?Я не могу понять: - (
Так что это мой код для выбора видеофайлов с тегами с идентификаторами 155 и 91 в таблице tags_map:
SELECT DISTINCT
vf.id,
vf.title,
vf.filename
FROM video_files vf
JOIN tags_map tm ON tm.video_file_id = vf.id
AND tm.tag_id IN (155,91)
GROUP BY vf.id
HAVING COUNT(DISTINCT tm.tag_id) = 2 ORDER BY id ASC;
Возможно ли этоизменить это?
Извините, да, название вопроса было неясным / неправильным. Я исправил его.
Я постараюсь прояснить:
item 1: has tags with ids 1 -> Not enough, I don't want to see it
item 2: has tags with ids 1 and 2 -> I do want to see it
item 3: has tags with ids 1, 2 and 3 -> It has tag with id 3 in it, I don't want to see it
item 4: has tags with ids 1, 2 and 4 -> It has tag with id 4 in it, I don't want to see it
item 5: has tags with ids 1, 2, 3 and 4 -> It has tags with id 3 and/or 4 in it, I don't want to see it