你理解错了sql和数据集的概念。$sql3="select taskid from jobrequest where status>1 and status <5";
$result3=mysql_query($sql3,$conn) or die(mysql_error());
//$sql2="select groupid from tasks where id in ('".$result3."')";
//$result2=mysql_query($sql2,$conn) or die(mysql_error()); 
$idstr;
while($row=mysql_fetch_row($result3))
{
  $id=$row->taskid;
  $idstr.=$id;
}...
  

解决方案 »

  1.   

    select * from groups where id in (select groupid from tasks where id in (select taskid from jobrequest where status>1 and status <5))5.0版的支持子查询但查询效率低一些问题,你可以考虑数据库设计或其他查询办法
      

  2.   

    1楼说的对,你误解了SQL数据集$sql3="select taskid from jobrequest where status>1 and status <5"; 
    $result3=mysql_query($sql3,$conn) or die(mysql_error()); 
    $sql2="select groupid from tasks where id in ('".$result3."')"; 
    $result2=mysql_query($sql2,$conn) or die(mysql_error()); $result3 是一个数据集合,而SQL的IN()里面的数据要求是数组
    你做第二次查询先处理一下$sql3="select taskid from jobrequest where status>1 and status <5"; 
    $result3=mysql_query($sql3,$conn) or die(mysql_error());
    $result3=implode(',',$result3); 
    $sql2="select groupid from tasks where id in ('".$result3."')"; 
    $result2=mysql_query($sql2,$conn) or die(mysql_error()); 
      

  3.   

    $sql3="select taskid from jobrequest where status>1 and status <5"; 
    $result3=mysql_query($sql3,$conn) or die(mysql_error());
    $result3=implode(',',$result3); 
    $sql2="select groupid from tasks where id in ('".$result3."')"; 
    $result2=mysql_query($sql2,$conn) or die(mysql_error()); 
      

  4.   

    我怎么瞅着像3表联查SQL语句啊3表联查没必要这么搞吧