私は2つのテーブルを持っています:
1) product data
2) sales stats of these products
表2に、1日あたりの各製品の販売統計を示します。過去30日間で最も売れた商品を入手したい。私は次のクエリでこれを実現しました:
SELECT sku
FROM prod_history
WHERE insert_date >= SUBDATE(CURDATE(), INTERVAL 31 DAY)
GROUP BY sku
ORDER BY SUM(number_of_orders) DESC
LIMIT 0, 10
このクエリには約4.5秒かかります。
次に、このクエリ結果を製品データテーブル(1)に接続します。
これには次のクエリを使用しますが、得られた結果は正しくありませんでした。 私が受け取った結果は、多くの場合、最も売れた製品ではありませんでした。
SELECT `prod_combined`.`sku`, `prod_combined`.`titel`, `prod_combined`.`preis_vk`, `prod_combined`.`link`
FROM `prod_combined`
WHERE (prod_combined.sku IN
(SELECT prod_combined.sku
FROM (SELECT sku FROM prod_history WHERE insert_date >= SUBDATE(CURDATE(), INTERVAL 31 DAY)
GROUP BY sku ORDER BY SUM(number_of_orders) DESC LIMIT 0 , 10
) q
JOIN prod_combined ON prod_combined.sku = q.sku )
)
AND (aktiv = 1) LIMIT 5
1つのクエリで必要な結果を取得する方法はありますか?
よろしく、マックス