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