从Facebook好友那里得到共同的朋友(MySQL表)

时间:2012-11-22 20:28:40

标签: php mysql facebook

我正在努力让两个人之间有共同的朋友。 我已将这些人朋友保存在名为“朋友”的表格中,其中包含以下字段:

id | facebook_id |名字| uid |时间戳

  • id =记录的唯一ID
  • facebook_id =朋友facebook id
  • name =朋友的姓名
  • uid =我网站上的用户uid,是表格中保存的人的朋友
  • timestamp =不需要解释: - )

希望有意义,尝试各种方式来结交朋友,但没有运气

2 个答案:

答案 0 :(得分:2)

我不知道使用子查询会更快还是mySQL已经优化了它。 子查询解决方案:

  SELECT f1.id, f1.name 
  FROM (SELECT id, name FROM friends WHERE uid=1) f1 
  JOIN (SELECT id, name FROM friends WHERE uid=2) f2 
  ON f1.id=f2.id;

答案 1 :(得分:0)

如果MySQL有一个INTERSECT运算符,那就太好了,但是......

你可以抓住一个人的所有朋友:

SELECT id, name
FROM friends
WHERE uid = 1

然后你可以将这个列表加入到好友表中,为其他用户寻找同一个朋友:

SELECT f1.id, f1.name
FROM friends f1
  JOIN friends f2 on f1.id = f2.id
WHERE f1.uid = 1
and f2.uid = 2

这是伪代码,但应该很接近。