如何从具有条件的表中选择所有数据?

时间:2014-02-06 19:09:13

标签: php mysql sql pdo

我是Android编程新手,我遇到查询问题。我试图搜索类似的问题,但我什么也没找到:)所以,这里..

给出这个patientinfo表

patient_id | name | gender | age 
      1    | jen  | female | 20
      2    | jay  |  male  | 19

和记录表

patient_id |   date   | description
      1    | 01-01-14 | healthy!
      1    | 02-01-14 | healthy!
      2    | 01-01-14 | needs medication.

我想获得某位患者的所有记录。 例如,如果我选择patient1 ..将显示patient1的所有记录。

这是我的查询..

$query = "SELECT * FROM records INNER JOIN patientinfo ON records.patient_id = patientinfo.patient_id WHERE records.patient_id = $patient_id";

try{
    $stmt = $dbname->prepare($query);
    $result = $stmt->execute(); 

}catch(PDOException $ex){
        $response["success"] = 0;
        $response["message"] = $ex;

        die(json_encode($response));
    }


但它给我一个sql语法错误,我认为它在$patient_id

  

errorInfo:您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法。

提前谢谢!希望得到答案!谢谢:))

1 个答案:

答案 0 :(得分:1)

尝试:

SELECT *
FROM patientinfo, records
WHERE (patientinfo.patient_id = $patient_id) AND (patientinfo.patient_id = records.patient_id);

您还可以专门列出要显示的列,并为它们指定别名,例如:

SELECT records.date AS the_date

只要$ patient_id不是空字符串,WHERE records.patient_id = $patient_id就好了。为此,我在执行它之前echo查询并检查它是否正常。