用于检查共同值的MySQL查询

时间:2017-08-22 01:31:45

标签: php mysql

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

    uid          suid
    1              5
    1              6
    2              5
    5              1
    5              2

我给它一个独特的" uid"通过POST方法,调用它1.我需要做的是返回所有" suid" $ uid"有" suid and suid(as uid)" has" $ uid(作为suid。)因此,在上面的例子中,脚本应该只返回5.

我知道我的第一步是

    "Select * FROM table Where uid = $uid"

那么也许我必须遍历结果并查询DB WHERE suid = $ uid。 我不知道如何进行第二次查询。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

此处的一个选项是自加入,连接条件是一个表中的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子句然后使用您传递的python .\manage.py runserver 参数选择第一条记录,这就是我们想要的。

在这里演示:

Rextester

答案 1 :(得分:1)

这就是我提出的:

    $uid = $_POST["UID"];

    $myquery = "SELECT * FROM Table WHERE uid = '$uid'";

    $result = $conn->query($myquery);
     if ($result->num_rows > 0) {

       while($row = $result->fetch_assoc()) {

        $myquery2 = "SELECT * FROM Table WHERE uid = '" . $row['suid'] . "' AND suid = '$uid'"; 
        $result2 =  $conn->query($myquery2);   

        if ($result2->num_rows > 0) {

            while($row = $result2->fetch_assoc()) {

                    echo $row["uid"].
              "!@#$";

        }
        }       
    }
}

    $conn->close();
    ?>

我觉得它不漂亮,但它确实有效。