这是我的桌子结构
朋友的名字
朋友的身份证
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/