是否可以使用PHP PDO使用第一个表中的列从第二个表中获取数据?

时间:2017-08-19 05:03:20

标签: php mysql pdo

好吧,我有一种情况需要同时从两个表中SELECT数据。但我的主要问题是,当SELECT .. WHERE中我需要的值在table1的WHERE clause语句的返回值中时,我在table2中如何SELECT

test.php的

<?php 
   include("../../connection.php");
    $data = json_decode(file_get_contents("php://input"));
    $id= $data->id;

    try{
      $db->exec("SET CHARACTER SET utf8");  
      $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

      $sql = "
        SELECT * FROM tblstudents WHERE studID=':id';
        SELECT * FROM tblparents WHERE studNumber=':studNumber';
      ";

      $statement = $db->prepare($sql);
      $statement->bindValue(":id", $id);
      $statement->bindValue(":studNumber", $studNumber);

      $result = $statement->execute();

      echo json_encode($result);

    }
    catch(PDOException $e) {
      echo $e->getMessage();
    }

?>

studNumber值位于tblstudents,其中SELECT语句的返回值为。{/ p>

studNumber的{​​{1}}语句位于同一{{1}时,我是否可以在SELECT语句的返回值中获取SELECT值}}?或者还有另一种方法吗?

希望我清楚地解释了我的情况。

1 个答案:

答案 0 :(得分:1)

您需要使用JOIN从多个表中获取数据。试试这个问题:

$sql = "SELECT * FROM tblstudents JOIN tblparents on
 tblstudents.studNumber  = tblparents.studNumber  WHERE tblstudents.studID=:id;"

  $statement = $db->prepare($sql);
  $statement->bindValue(":id", $id);
  $result = $statement->execute();