PHP 根据其他表的 ID 查询 MySQL 表

标签 php mysql

我有一个包含多个表的数据库。我可以从单个表中查询 ID。我想做的是使用这些 ID 查询另一个表 ID,然后使用这些新 ID 查询最终表中的字段。这是我目前正在做的事情:

以下是我获取第一组 ID 的方法:

$returnedPost = mysqli_query($con, "SELECT Region_ID FROM Region WHERE RegionName='" . $queryVar . "'");

function resultToArray($result) {
    $rows = array();
    while ($row = $result->fetch_assoc()) {
        $rows[] = $row;
   }
    return $rows;
}
$rows = resultToArray($returnedPost);
//$rows[x]['Region_ID'];//returns Region_ID 1...n

我希望使用 $rows 中的 ID 能够从其他表中查询一组新的 ID,如下所示:

$newTbl = mysqli_query($con, "SELECT Location_ID FROM Location WHERE Region_ID=" . $rows[$x]['Region_ID']);
$rows2 = resultToArray($newTbl);
$finalTbl = mysqli_query($con, "SELECT Field1, Field2 FROM Posts WHERE Location_ID=" . $rows2[$x]['Location_ID']);

有人可以告诉我如何实现这一目标吗?谢谢。

最佳答案

您可以在一个查询中使用 INNER JOIN 来获取此数据,也许是这样的

SELECT P.Field1,P.Field2
FROM Region R
INNER JOIN Location L ON R.Region_ID = L.Region_ID
INNER JOIN Posts P ON L.Location_ID = P.Location_ID
WHERE R.RegionName = Your_Region_QueryVar

关于PHP 根据其他表的 ID 查询 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36681694/

相关文章:

php - hostgator - PHP - MYSQL 无法连接

Java、Hibernate、MySQL - 存储 UTC 日期时间

php - 获取 MySQL LEFT JOIN 上最后一次出现的行

mysql - 是否可以使用 1 个模式中的二进制日志并使用 mysqlbinlog 将它们发送到另一个模式?

mysql - 当 flyway 进程崩溃时,Flyway 不处理隐式提交的语句

php - MySQL使用另一个表中的值过滤一个表中的数据

PHP 循环内函数内的函数 :S

javascript - 如果字符串不是较大字符串的一部分,则使用 javascript 中的正则表达式替换字符串

PHP:定义间隔的开始日期

PHP/MySQL : Insert rows temporarily