【问题标题】:MySQLi: Query with a variable to another tableMySQLi:使用变量查询另一个表
【发布时间】:2016-04-11 18:20:39
【问题描述】:

所以,我有一个数据库,里面有几个表。这些表中的大多数包含有关同一文档的信息并通过 ID 连接(这很愚蠢,因为它可能都在同一个表中,但我正在帮助的公司现在无法更改这一点)。我目前正在处理的 2 个表格的内容如下所示。

tblDocument: 包含 ID + 其他信息。

tblVerification: 包含 ID、verificationNo + 其他信息。

现在,我想做的是从 tblDocument 中的 ID 中找到 tblVerification 中的 verificationNo strong>,使用 PHP 和 MySQLi。我找到了一个允许我将变量传递到查询中的解决方案,但感觉这不是最有效的解决方案,而且代码让我感到困惑。非常感谢有关查询如何工作或新的更简单解决方案的任何其他信息。

<?php

$mysqli = new mysqli("ip", "name", "pw", "db");
$dbDoc = $mysqli->query("SELECT * FROM tblDocument ORDER BY ID");

while ($row = $dbDoc->fetch_assoc()) {
    $tempID = $row["ID"];

    $bind = 's';
    $queryThis = $mysqli->prepare("SELECT verificationNo FROM tblVerification WHERE ID = ?");
    $queryThis->bind_param($bind, $tempID);
    $queryThis->execute();
    $queryThis->bind_result($result);
    $queryThis->fetch();
    $queryThis->close();
    $tempVer = $result;

    echo $tempVer . " ";
}
?>

实际问题:这是仅使用 PHP 和 MySQLi 实现此结果的最有效方法和/或您可以做些什么来简化它?

【问题讨论】:

    标签: php html mysqli


    【解决方案1】:

    你尝试过加入吗?

    "SELECT tblDocument.*, tblVerification.verificationNo
    FROM tblDocument INNER JOIN tblVerification
        ON tblDocument.ID=tblVerification.id
    ORDER BY ID"
    

    【讨论】:

      【解决方案2】:

      在这种情况下,您应该使用 SQL JOIN:-

      您的查询应该是:-

      "SELECT tblDocument.*, tblVerification.verificationNo
      FROM tblDocument
      LEFT JOIN tblVerification
      ON tblDocument.ID = tblVerification.ID
      ORDER BY tblDocument.ID;"
      

      【讨论】:

        【解决方案3】:

        您可以简单地将两个表连接起来:

        SELECT tv.id, tv.verificatioNo 
        FROM tblVerification tv
        INNER JOIN tblDocument td
        ON tv.id = td.id
        ORDER BY tv.id;
        

        如果您想过滤某些特定的id,请添加WHERE 条件:

        WHERE tv.id = ? 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-04
          • 1970-01-01
          • 1970-01-01
          • 2013-02-28
          • 2020-06-14
          • 1970-01-01
          相关资源
          最近更新 更多