-4

我在 mysql 中有一个带有 account_follow 名称的表。

follower 和 follower 指向用户 ID。

当follower字段指向followed字段表示用户,followed一个具有特定ID的人,当follower指向follower并且followed指向follower时表示follower和follower之间是友谊。我的问题是如何使用此架构选择关注者的朋友(关注者字段),例如我想选择关注者并结交朋友,在查询中是否可行?或者我必须在 php 中解决这个问题(我不应该使用)?

在此处输入图像描述

例子 :

  • 1和2是朋友。
  • 2 关注 1 但不是朋友。
  • 1和3是朋友。
4

1 回答 1

1

我希望我正确理解了你的问题......

无论如何,您都可以获得用户 id 的“跟随”的逗号分隔列表。我假设您正在根据用户 ID 进行查询。

FollowedList = Convert(varchar(50),replace( 
  (SELECT distinct followed as [data()] 
  FROM account_follow a
  WHERE a.follower = b.user_id
  ORDER BY follower_id for xml path ('') ), ' ', ',') )

这是一个子查询——因此,您将在主查询中选择 FollowedList,该查询将该表与您的主表连接起来,在此查询中称为“b”。

如果列表将超长,您可能需要将其转换为不仅仅是 varchar(50)。

于 2013-03-14T19:50:07.723 回答