SQL-запрос, в котором ВСЕ записи в соединении соответствуют условию?

У меня, кажется, простая проблема, но я не могу найти правильное решение через 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' исключен, потому что у него есть тег, которого нет в списке.

Надеюсь, я прояснил это. Спасибо за вашу помощь!

12
задан Mr Lister 29 April 2012 в 16:35
поделиться