如何在多个表中搜索?

时间:2015-07-17 13:36:06

标签: php mysql

我有2个表医学史和病史医学史我有字段名称DoctorId和PatientId和患者ihave PatientId,FirstName,MiddleName,LastName

截至目前我的查询是这样,它只过滤了一个表和来自医学历史的病人。

$dids = $_SESSION["DoctorId"];
if(isset($_POST["btnsrch"])&& ($_POST["textbox"]!="")){
   $pid = $_POST["textbox"];
    $pid= mysqli_real_escape_string($_POST["textbox"]);

   $query2= mysqli_query($link,"Select DISTINCT PatientId from medicalhistory where DoctorId='". $dids ."' or PatientId='". $pid ."'" );

}

我的问题是我将如何查询FirstName MiddleName和LastName,但它只查询医学史上该医生的记录名称?

1 个答案:

答案 0 :(得分:0)

$query2= mysqli_query($link,"SELECT p.PatientId,p.firstname,p.middlename,p.lastname 
FROM patient p 
INNER JOIN medicalhistory as pa ON (p.PatientId = pa.PatientId) 
WHERE pa.PatientId='".$pid."'" ); 

这将是您修改后的代码:

$dids = $_SESSION["DoctorId"];
if(isset($_POST["btnsrch"])&& ($_POST["textbox"]!="")){
    $pid = $_POST["textbox"];
    $pid= mysqli_real_escape_string($_POST["textbox"]);

    $query2= mysqli_query($link,"SELECT p.PatientId, p.FirstName, p.MiddleName, p.LastName,pa.doctorID,pa.Evaluation FROM patient p INNER JOIN medicalhistory as pa ON (p.PatientId=pa.PatientId) WHERE pa.PatientId='".$pid."'" );
}

示例输出:

mysql> select p.id,p.First,p.last, p.middle,pa.id,pa.evalution from test1 as p left join test as pa on (p.id=pa.id) where p.first='Dan' and p.id=4 and p.last='smi
th';
+----+-------+-------+----------+----+-----------+
| id | First | last  | middle   | id | evalution |
+----+-------+-------+----------+----+-----------+
|  4 | Dan   | Smith | chandran |  4 | sick      |
+----+-------+-------+----------+----+-----------+
1 row in set (0.00 sec)