0

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

编号 | facebook_id | 姓名 | uid | 时间戳

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

希望有意义,尝试了各种方法来获得朋友,但没有运气

4

2 回答 2

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;
于 2012-11-22T21:27:01.200 回答
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

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

于 2012-11-22T20:48:57.623 回答