0

モデルを照合して、商品テーブルから在庫商品に関する追加情報を取得しようとしています。

この 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 />";
         }

シリアルを追跡する必要がある場合、在庫用に別のテーブルを使用する必要がありますか? どんな助けでも大歓迎です!!!

4

2 に答える 2

2

単一のクエリで同じ結果を達成し、ネットワーク オーバーヘッドを軽減するにJOINは、inventoryとテーブルを一緒に使用する必要があります。products

次のようになります。

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

JOIN リファレンス: http://dev.mysql.com/doc/refman/5.0/en/join.html

于 2013-02-02T05:53:31.690 に答える
1

両方のテーブルを結合してデータを返すようにクエリを変更します。これにより、while ループで別のクエリを呼び出す必要がなくなり、パフォーマンスが向上し、データベースへの呼び出しが減少します。

元:

SELECT i.* , p.price
FROM inventory i
JOIN products p on i.model = p.model
order by i.model
于 2013-02-02T05:54:53.580 に答える