У меня есть то, что кажется простой проблемой, но не может найти правильное решение через SQL. Я использую postgresql специально.SQL-запрос, где ВСЕ записи в соединении соответствуют условию?
Возьмите следующее:
SELECT * FROM users INNER JOIN tags ON (tags.user_id = users.id) WHERE tags.name IN ('word1', 'word2')
Это не делать то, что мне нужно. Я хочу найти пользователей, чьи теги ТОЛЬКО включены в список. Если у пользователя есть тег, которого нет в списке, пользователь не должен включаться.
'User1' теги: word1, word2, word3
метки 'user2': Слово1
метки 'USER3': word1, WORD2
Дано: word1 и word2. Я хочу подготовить запрос, который возвращает «user2» и «user3». «user1» исключается, поскольку в нем есть тег, которого нет в списке.
Надеюсь, я сделал это ясно. Спасибо за вашу помощь!
возможно дубликат [? SQL, как соответствовать ALL] (http://stackoverflow.com/questions/4763143/sql-how-to-match -all) –
Разве вы не спросили об этом –
Должны ли быть возвращены пользователи, у которых нет тегов? – Quassnoi