uid suid
1 5
1 6
2 5
5 1
5 2
我通过POST方法给它一个独特的“uid”,称之为1.我需要做的是返回所有“suid”,其中$uid“有”suid AND suid(as uid)“has”$uid(as suid.)因此,在上面的例子中,脚本应该只返回5.
我知道我的第一步是
"Select * FROM table Where uid = $uid"
那么也许我必须遍历结果并查询DB WHERE suid = $uid.
我不知道如何进行第二次查询.有什么建议?
解决方法:
这里的一个选项是自连接,连接条件是一个表中的uid与另一个表中的suid匹配,反之亦然,第一个表中的suid.
SELECT
t1.suid
FROM yourTable t1
INNER JOIN yourTable t2
ON t1.uid = t2.suid AND
t1.suid = t2.uid
WHERE
t1.uid = 1
在应用WHERE子句之前,上面的查询将返回两个记录:
uid | suid (uid not selected)
1 | 5
5 | 1
然后,WHERE子句使用您传递的uid参数选择第一条记录,这就是我们想要的.
在这里演示: