这是一个我无法弄清楚的非常基本的查询....
假设我有一个像这样的两列表:
userid | roleid
--------|--------
1 | 1
1 | 2
1 | 3
2 | 1
Run Code Online (Sandbox Code Playgroud)
我想得到所有具有roleids1,2和3的不同用户ID .使用上面的例子,我想要返回的唯一结果是userid1.我该怎么做?
我有一个似乎是一个简单的问题,但无法通过SQL找出正确的解决方案.我特意使用postgresql.
请考虑以下事项:
SELECT * FROM users INNER JOIN tags ON (tags.user_id = users.id) WHERE tags.name IN ('word1', 'word2')
Run Code Online (Sandbox Code Playgroud)
这不符合我的需要.我想找到标签仅包含在列表中的用户.如果用户的标签不在列表中,则不应包括该用户.
'user1'标签:word1,word2,word3'user2
'标签:
word1'user3'标签:word1,word2
给定:word1和word2.我想准备一个返回'user2'和'user3'的查询.'user1'被排除,因为它有一个不在列表中的标记.
希望我明白这一点.谢谢你的帮助!