微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 用于检查共同值的MySQL查询

我有一个类似于以下内容MySQL数据库

    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参数选择第一条记录,这就是我们想要的.

在这里演示:

Rextester

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐