结合多个选择的结果

时间:2013-03-24 14:47:55

标签: php sql loops

我需要你帮助一件小事。我有两个表,我需要从第一个表中获取人员的名称和ID列表。然后使用此列表获取与这些人关联的服务。 请记住,我需要名称和ID来识别服务。

该查询类似于以下内容:

$query = "SELECT id, name from person where customerType='specificType';
$result = mysql_query($query,$this->connection); 

之后,我遍历此查询的结果以获取服务列表:

While ($list=mysql_fetch_array($result))
{
     $query = "SELECT serviceID, serviceName from services 
     where assignedToName='".$list['name']."' and assignedToID=".$list['id'];
 $result2 = mysql_query($query,$this->connection);

if(!$result2 || mysql_num_rows($result2) <= 0)
{//I do nothing}
else{
  if(isset($servicesList))
      { 
          //Here is the part that is not working, How to combine the results??
     $servicesList .= $result;
      } 

      else $servicesList=$result;
    }
}
//End While


if(isset($servicesList))
{ return $servicesList;}else { 
return 'error';

}

提前致谢...

1 个答案:

答案 0 :(得分:3)

请考虑使用join和一个查询。

这样的事情:

SELECT 
  p.id, 
  p.name, 
  s.serviceID, 
  s.serviceName 
FROM 
  person p 
LEFT JOIN 
  services s
ON 
  (p.id = s.assignedToID 
  AND 
  p.name = s.assignedToName)
WHERE 
  p.customerType='specificType'