代码生成6k mySQL查询,当然可以优化

Afo*_*mes 0 php mysql select

我有一段PHP代码,它向mySQL生成超过6000个查询,我觉得这可以做得更好......

$q0 = "SELECT id_productFROM products";     
$e0 = mysql_query($q0) or die("Select failed: " . mysql_error());

while($r0 = mysql_fetch_array($e0)){    

    $id_product = $r0['id_product'];

    $q1 = "SELECT * FROM productspeople WHERE id_product = $id_product ";       
    $e1 = mysql_query($q1) or die("Select failed: " . mysql_error());

    if(mysql_num_rows($e1) == 0){ $count++; }else{ }

}

echo $count. "<br />";
Run Code Online (Sandbox Code Playgroud)

我的问题是......有没有更好的方法来计算另一个表中某个表的certaing id字段的"不存在"?如果是这样..怎么样?

在此先感谢并感谢理解我(最有可能)我的无聊.

Tom*_*lak 5

一个查询.

SELECT COUNT(*) AS count 
  FROM products
 WHERE NOT EXISTS (
         SELECT 1 FROM productspeople WHERE id_product = products.id_product
       )
Run Code Online (Sandbox Code Playgroud)

哦,如果有索引,它会有很大帮助productspeople.id_product.

作为一般提示,尝试在数据库上尽可能多地完成工作.相比之下,在PHP和DB之间来回发送查询是非常低效的.