order_item
次のフィールドを持つ特定の注文の詳細を含むという名前のMySqlのテーブルがあります(およびここに投稿する必要がないと思われる他のフィールドがあります)。
- order_id
- prod_id
- qty_ordered
- 価格
ベストセラー商品を計算する必要があります。次のSQL文を使用しています。
SELECT o.prod_id, sum(o.qty_ordered) as qty_ordered, p.prod_img
FROM order_item o, product_image p
WHERE o.prod_id=p.prod_id AND
p.prod_id IN(SELECT prod_id FROM product_image limit 1) AND
order_id IN(SELECT order_id FROM order_table WHERE od_status='Completed')
GROUP BY prod_id
HAVING SUM(qty_ordered)>=5
ORDER BY prod_id DESC
上記のクエリは、ベストセラー商品を計算します。唯一の問題は、上記のステートメントで言及されているサブクエリが
p.prod_id IN(SELECT prod_id FROM product_image limit 1)
動作しません。MySQL が不平を言う
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
このサブクエリはproduct_image
、同じ製品の複数の製品画像があり、そのうちの 1 つだけを表示する必要があるテーブルに保持されている製品画像を取得します。
私のサーバーのバージョンは 5.1.48 です。この状況を回避する別の方法はありますか?