2017-08-19 7 views
0

さて、2つのテーブルのデータを一度にSELECTにする必要があるという状況があります。しかし、私の主な問題は、私がWHERE clauseに必要な値がテーブル1のSELECTステートメントの戻り値にあるとき、私はどのようにしてSELECT .. WHEREを私のテーブル2に入れることができるかということです。PHP PDOを使用して1番目のテーブルの列を使用して2番目のテーブルからデータを取得できますか?

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値はSELECTのステートメントからの戻り値を持つことになりますtblstudentsです。

はそれがtblparentsSELECT文が同じsql queryにあるとき、私はSELECT文の戻り値にstudNumber値を得ることができることは可能ですか?それとも別の方法がありますか?

私は私の状況を明確に説明しました。

+1

私はあなたが 'INNER JOIN'が必要と思います。 – JYoThI

+0

@JYoThI、ありがとう、私はそれを試してみましょう。 – Marksmanship

+1

結合について読む – Strawberry

答えて

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(); 
+0

あなたの答えをありがとう。遅れて答えを受け入れて申し訳ありません。 – Marksmanship

関連する問題