在一个while查询中嵌入一个mysql查询?

时间:2013-02-02 05:51:51

标签: php mysql

我正在尝试通过匹配他们的模型从我的产品表中提取有关库存商品的其他信息。

我想在此while循环中的products表中运行另一个查询,其中model = $ model。从那里我想获得价格等变量以显示在我的$inventory_list

$sql = mysql_query("SELECT * FROM inventory order by model");
    // get all the product details
    while($row = mysql_fetch_array($sql)){ 
         $model = $row["model"];
         $serial = $row["serial"];
         $inventory_list .= "$model $serial <br />";
         }

如果我需要跟踪连续剧,是否需要使用另一张桌子作为库存? 任何和所有的帮助表示赞赏!!!

2 个答案:

答案 0 :(得分:2)

您希望将JOIN inventoryproducts表放在一起,以便通过单个查询获得相同的结果,从而减少网络开销。

看起来应该是这样的:

SELECT `inventory`.*, `products`.`price`
FROM `inventory`
LEFT JOIN `products` ON `inventory`.`model` = `product`.`model`
ORDER BY `inventory`.`model`;

加入参考http://dev.mysql.com/doc/refman/5.0/en/join.html

答案 1 :(得分:1)

更改查询以连接两个表并返回数据,这样您就不必在while循环中调用另一个查询,从而提高性能并减少对数据库的调用

例如:

SELECT i.* , p.price
FROM inventory i
JOIN products p on i.model = p.model
order by i.model