0

我有两个命名的表patient_listdentist_list牙医在哪里可以有很多病人,我想知道牙医有多少病人并订购它。

我在这里有一个示例代码,我可以在其中获取每个医生的患者:

$query_dentist = "SELECT * FROM dentist_list ORDER BY ID ASC";
$res_dentist   = mysql_query($query_dentist);

if ($res_dentist) {
    while ($row_dentist = mysql_fetch_array($res_dentist)) {

    }
}

在获得所有牙医后,我会在其中创建一个新查询,同时获取所有患者人数。

$dentist_id = $row_dentist['id'];
$query_patient= "SELECT COUNT(*) as patient_num FROM patient_list
                                 WHERE dentist_id ='$dentist_id'";

$res_patient=mysql_query($query_patient);
if($res_patient)
{
     while($row_patient=mysql_fetch_array($res_patient))
     {

     }
 }

例如查询的输出是:

doctor 1 has 10 patient
doctor 2 has 5 patient
doctor 3 has 100 patient

除了使用 PHP,是否可以使用 MySQL 语句来代替?我将只创建一个查询,因为我需要它按患者人数排序。

4

2 回答 2

0

您可以尝试使用以下代码:

  select d.Name, -- <- put dentist information here
         (select count(1) from patient_list p where p.dentist_id = d.dentist_id) 
    from dentist_list d
order by 2 asc -- <- order by by the 2nd field that is (select count(1...
于 2013-08-06T06:23:09.513 回答
0
SELECT COUNT(*) AS Patient_Num FROM patient_list GROUP BY dentist_id ORDER BY 1
于 2013-08-06T05:39:48.757 回答