我有一段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字段的"不存在"?如果是这样..怎么样?
在此先感谢并感谢理解我(最有可能)我的无聊.
一个查询.
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之间来回发送查询是非常低效的.