次のテーブルがあります。
items(itemid, itemName, catid)
categories (catid, catname)
prices (itemid, open_price, close_price)
- 各アイテムは 1 つのカテゴリのみに属します
- 各アイテムの価格テーブルには、open_price、close_price の行が 1 つだけあります
10 個のカテゴリがあり、それぞれに 10 個のアイテムがある場合 (たとえば)、各カテゴリで価格の変化が最も大きい会社を見つけるにはどうすればよいでしょうか。
私は現在、実行して各カテゴリのトップ パフォーマンスを取得する php ループを持っていますが、それをより効率的に行う方法があるかどうか疑問に思っていました。
ありがとう
コード:
foreach category, run the following query:
SELECT c.itemid, c.itemname ,
100.0 * ( cp.close_price - cp.open_price )/ IFNULL(cp.open_price,1) AS overall_change
FROM prices cp
LEFT JOIN items c ON c.itemid = prices.itemid
WHERE c.catid=8 ORDER BY overall_change DESC LIMIT 1;