gpt4 book ai didi

连接中的所有记录都匹配条件的 SQL 查询?

转载 作者:行者123 更新时间:2023-12-04 01:08:44 25 4
gpt4 key购买 nike

我有一个似乎很简单的问题,但无法通过 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' 被排除,因为它有一个不在列表中的标签。

希望我说清楚了。谢谢你的帮助!

最佳答案

依赖于 COUNT(*) = 2 将要求标签表中的 user_id 和 name 不能重复。如果是这样,我会走那条路。否则,这应该有效:

SELECT u.* 
FROM users AS u
WHERE u.id NOT IN (
SELECT DISTINCT user_id FROM tags WHERE name NOT IN ('word1', 'word2')
) AND EXISTS (SELECT user_id FROM tags WHERE user_id = u.id)

关于连接中的所有记录都匹配条件的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4764650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com