У меня есть система, которая помечает файлы текстовыми метками. Каждый файл имеет несколько тегов. Соответствующие таблицы / столбцы:
taggings(fileHash,tagId)
tags(tagId,tagText)
Как найти все tagId, в которых есть строка, где tagText соответствует запросу 1, и другая строка, в которой он соответствует запросу 2? Другими словами, как я могу найти каждый fileHash, который имеет оба из двух тегов, когда теги находятся в отдельных строках, как показано выше?
Есть ли способ сделать это для произвольного числа совпадений?
Я нашел это , которое кажется связанным, но когда я пытаюсь написать такой запрос, я получаю ошибку "Невозможно подготовить оператор".
Пример данных
-осна-
fileHash tagId
404ba9 1
404ba9 2
e04f90 1
e04f90 3
Метки
tagId tagText
1 document
2 personal
3 work
Ожидаемый результат
Если пользователь выполнил поиск personal
и document
, как определено в tags
, верните 404ba9
, так как оба (404ba9, 1) и (404ba9,2) существуют в taggings
.