我正在尝试根据用户的兴趣连接两个用户。连接表由FirstUserId、SecondUserId和InterestId组成。目前,可以显示连接,我可以在其中获取第一个用户的信息。我还希望能够获得第二个用户的信息,这样他们的名字和信息就可以显示出来。但是,当尝试在SecondUserId和Id (从User表)之间创建关系时,我得到的消息是这是不可能的,因为已经存在一个关系。
我想知道是否有人有如何将SecondUserId连接到用户表的解决方案。提前感谢!
发布于 2021-05-12 20:27:21
您要做的是通过另一个表连接一个表的两行。这不是正确的方法,因为您不能两次引用同一个表的外键。(没有意义)这种方法可以用来连接两个表(比如表User + Interest)
实际上,你不需要为你想要的连接定义额外的东西。这可以通过查询来完成。即获取两个具有相同兴趣的用户:
select * from User where Id in (
select FirstUserId from Connection where InterestId in (
select InterestId from Connection
group by InterestId having count(*) > 1
)
)如果您只需要两个兴趣相同的用户,则返回having count(*) = 2
https://stackoverflow.com/questions/67503060
复制相似问题