PHP从其他表的ID查询MySQL表

时间:2016-04-17 20:14:46

标签: 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']);

有人可以告诉我如何才能做到这一点?感谢。

1 个答案:

答案 0 :(得分:1)

您可以在一个查询中使用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