У меня есть то, что кажется простой проблемой, но не может найти правильное решение через SQL. Я использую postgresql специально.
Возьмите следующее:
SELECT * FROM users INNER JOIN tags ON (tags.user_id = users.id) WHERE tags.name IN ('word1', 'word2')
Это не делает то, что мне нужно. Я хочу найти пользователей, чьи теги ТОЛЬКО включены в список. Если у пользователя есть тег, которого нет в списке, пользователь не должен включаться.
'user1' tags: word1, word2, word3
Теги 'user2': word1
Теги 'user3': word1, word2
Данные: word1 и word2. Я хочу подготовить запрос, который возвращает "user2" и "user3". "user1" исключается, поскольку в нем есть тег, который отсутствует в списке.
Надеюсь, я сделал это ясно. Спасибо за вашу помощь!