0

現在、php スクリプトを使用して (mysql) データベースからデータをエクスポートしようとしていますが、phpmyadmin の sql セクションで sql ステートメントを直接試しても同じ結果が得られました。

私がやろうとしているのは、在庫があり、価格 (コスト) が 0 より大きい、つまり、数量 > 0 で価格 > 0 の最も安い合計価格とともに、データベースから一意の各製品をエクスポートすることです。

それで、私はいくつかの助けを借りてそれを理解したと思っていました.小さなデータセットでうまくいくようですが、現時点ではこのテーブルに約500,000行あり、それは成長します.

したがって、私の声明は次のとおりです。

SELECT 
products.name,
products.price,
products.quantity,
products.totalprice
FROM
products INNER JOIN
  (SELECT name, MIN(totalprice) min_price
   FROM products
   WHERE quantity>0 AND price>0
   GROUP BY name) m
  ON products.name=m.name AND products.totalprice=min_price

phpmyadmin では、ご想像のとおり、「読み込み中」ステータスが表示されますが、実際には値が表示されません。次に、mysqlとapache(xamppを使用しています)を「停止」してから再起動する必要があります。そうしないと、データベースで何もできません。

誰かがステートメントの何が問題なのかを理解できる場合は、何か提案を聞くことができれば幸いです.

編集

単純な sql ステートメントを既に試しましたが、正しい答えが得られないようです。たとえば、私はすでに試しました:

SELECT name, MIN(totalprice) min_price, quantity
   FROM products
     WHERE quantity>0 AND totalprice>0
   GROUP BY name

しかし、私のSQLフィドルからわかるようにhttp://sqlfiddle.com/#!2/dd9f4/7/0

これにより、誤った値が返されます。つまり、数量が 0 を超える最も安い価格が返されますが、数量が 0 を超えるリストの最初の値が返されるため、製品と製品を結合する必要がありました ありがとう

4

1 に答える 1