【问题标题】:get friend list in mysql获取mysql中的好友列表
【发布时间】:2012-12-29 12:46:15
【问题描述】:

我有一张像这里这样的桌子:

friend : (userid , friendid)

所以,如果 user_auser_b 的朋友,我会将下面的行加载到表格中

user_a , user_b

并且我不usar_b , user_a插入到表中。

那么如何通过mysql查询获取user_b的好友列表呢?

【问题讨论】:

标签: mysql sql sql-server


【解决方案1】:

假设您想要 userA 的朋友
你需要获取userA的所有好友,并与所有好友为userA的用户联合。

假设 userA 的 ID 是1001,查询将是

select UserID from Friends
where FriendID = 1001
Union All
select FriendID from Friends
where UserID = 1001

【讨论】:

  • 你可以(安全地)使用UNION ALL,因为 OP 说他只存储了两对中的一对。
  • @ypercube 注意到了,我将它添加到我的答案中。谢谢。
【解决方案2】:

条件(t1.id<t2.id) 允许我们只包含一对a,b 并排除b,a

select t1.userid user1, t2.userid user2
FROM friends t1
JOIN friends t2 ON (t1.friend=t2.id) and (t1.id<t2.id)

【讨论】:

    【解决方案3】:
    select a.user,a.friend from 
    friend a,friend b
    where a.user=b.user and
    a.friend=b.friend and a.user<>b.friend
    and a.friend<>b.user
    

    试试这个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 2021-10-03
      • 1970-01-01
      • 2014-11-15
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多