嘿家伙 - 我在我的数据库中有一个表用于用户跟随彼此。从一个联盟分组SQL结果
表去如下: 的UniqueID FollowerID FollowedUserID
FollowID是谁是下别人
FollowedUserID是谁是被随后FollowID的人的用户名的人的用户名用户
我想根据单个用户检索此表中的连接列表。我的查询应该返回当前用户为的所有其他用户标识,它们跟随或跟在之间,没有重叠。
所以说,我们这里有几个项目:
FollowerID FollowedUserID
1 2
1 3
4 1
2 1
这表明用户跟随用户2和3,得到用户2和3的后面是用户 。在光谱的另一端它表明用户其次是用户2和3
我希望做的是找出用户有连接,所以查询应该返回用户:2,3和4(用户跟随用户2和3,并且正在跟随用户4)
如何从单个查询中实现此目的?
A 连接被认为是被跟随或跟随其他人,因此可能会发生一些重复的结果(如果两个用户都相互依赖)。我希望能够将这些结果分组,以便结果不同。
我已经试过类似UNION查询:
SELECT FollowerID, FollowedUserID From Follows WHERE FollowerID = 1
UNION
SELECT FollowerID, FollowedUserID FROM Follows WHERE FollowedUserID = 1
理论上我想集团FollowerID和FollowedUserID在一起,让他们截然不同。
我不想检索一个非独特的结果,然后创建一个独特的PHP结果数据集 - 查询应该只返回不同的值。
这是什么RDBMS?这是MS SQL Server吗? – 2011-05-17 02:53:35
我不太明白你的问题是什么。您发布的UNION查询出了什么问题? “Group FollowerID和FollowedUserID一起使它们保持不同”是什么意思?那没有意义。也许你可以添加你想得到的结果,也许我们可以找到一个查询来产生它。 – sleske 2011-05-17 02:55:20
而顺便说一句,'SELECT ... UNION SELECT ...'将自动仅检索不同的值。如果你想复制,你必须使用'UNION ALL'。 – sleske 2011-05-17 02:56:49