这是我的桌子结构
朋友的名字
朋友的身份证
UID用户的ID[Int]
主键[fUID,UID]
我想交两个人的普通朋友。我试过:

SELECT t1.fName,
       t1.fUID
  FROM friends t1,
       friends t2
 WHERE t1.UID = X
   AND t2.UID = X2

但它没有起作用:(我反复得到相同的结果。
一些样本数据
UID  Name
----------
1    Mark
2    Eduardo
3    Dustin

Friend Table
UID  fUID  fName
------------------
1    2     Eduardo
2    1     Mark
3    1     Mark
1    3     Dustin

最佳答案

如果我理解正确的话,您有两个用户ID(X1和X2),您希望找到与这两个用户都是朋友的所有人。

SELECT f1.fUID, f1.fName
FROM friends f1,
friends f2
WHERE f1.UID = X1
      AND f2.UID = X2
      AND f1.fUID = f2.fUID

注意:这假设所有的朋友关系都存储在friends表中两次,每个方向一次。如果不是的话,事情就复杂了一点。

关于mysql - MySQL:在不使用Distinct的情况下将表与自身连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6470648/

10-13 05:21