gpt4 book ai didi

sql - 我怎样才能得到一个用户拥有同一组 friend 的uid? (SQL)

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:42 26 4
gpt4 key购买 nike

friend :

  UID       FUID

1234 2222
1234 3333
1234 4444
2222 1234
2222 3333
3333 1234
3333 5555
4444 1234
4444 2222
5555 2222
5555 3333
6666 2222
6666 3333
6666 4444

即id=1234 的 friend 组是 2222,3333 和 4444。我怎样才能得到只包括 6666 的报告?感谢您!使用“NOT EXISTS”和“MINUS”能解决这个问题吗?

下面是我的尝试:

select 
f1.uid
from friend f1
minus
select
f2.uid
from friend f2
where not exists
(select
f.fuid
from friend1 f
where f.uid=1234);

最佳答案

想法是对好友进行自连接并查找所有匹配项。

下面匹配好友,然后按uid分组。伯爵说所有的 friend 都匹配:

select f.uid
from (select f1234.*, count(*) over () as numfriends
from friend f1234
where f1234.uid = 1234
) f1234 left join
friend f
on f.fuid = f1234.fuid and
f.uid <> 1234
group by f.uid, f1234.numfriends
having count(*) = f1234.numfriends;

如果您想要精确匹配——意味着没有额外的 friend ——那么您可以使用完全外部连接

关于sql - 我怎样才能得到一个用户拥有同一组 friend 的uid? (SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29186980/

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