子查询php mysql

子查询php mysql,php,mysql,subquery,Php,Mysql,Subquery,我有一个子查询: $sql = "SELECT * FROM curriculum WHERE ci in (SELECT curriculum FROM contactados WHERE activado = 'si' AND empresa = '".$_SESSION['emp']."' )"; echo "Rows: ".@mysql_num_rows($sql); $result = mysql_query($sql, $link) or die(mysql_error($

我有一个子查询:

 $sql = "SELECT * FROM curriculum WHERE ci in (SELECT curriculum FROM contactados WHERE activado = 'si' AND empresa = '".$_SESSION['emp']."' )";
  echo "Rows: ".@mysql_num_rows($sql);
  $result = mysql_query($sql, $link) or die(mysql_error($link));
        while($fila = mysql_fetch_array($result)){

       echo $fila['nombres']." ".$fila['apellidos']or die("error");


      }    

但是它不起作用,我不知道为什么我希望这对你有用

$sql = "SELECT `a`.*, `b`.`curriculum` FROM `curriculum` AS `a` 
        LEFT JOIN `contactados` AS `b` ON `a`.`ci` = `b`.`curriculum`
        WHERE `b`.`activado` = 'si' AND `b`.`empresa` = '".$_SESSION['emp']."'";

“有什么不管用的?”草莓,我们需要猜猜。但是真的,Facundo Gutierrez,写一个问题,你真的应该在这里使用连接而不是子选择吗?你真的应该使用mysql_查询吗?请不要加入那些无缘无故将@放在函数调用之前的人。此外,在伤害自己之前,请停止使用mysql_查询。您需要确保任何和所有用户参数都处于或您处于应用程序受损的严重风险中,尤其是用户数据。这是一个连接。”“LEFT”在这里是多余的,因为所有的backtick都是多余的。如果找不到数据,我通常使用这种方式来防止错误显示。。。哈哈,我不明白。从优化器的角度来看,这与JOIN相同。对查询运行EXPLAIN EXTENDED,然后显示警告。你会明白我的意思的。没必要,只要改变你的疑问-您好,我使用的代码是:$sql=mysql\u querySELECT*FROM currency,其中active='si'和ci在contactados的SELECT currency中,activado='si'和empresa='gades srl',$linkor diemsql\u error$sql;在localhost的SQL部分中,它可以正常工作,但是当我在PHP中使用它时,$fila=mysql\u fetch\u assoc$SQL{echo$fila['nombres']..$fila['apellidos']或diererror;}它会打印111