0

これは私のストームコードです:

items = store.find((Delivery, Product, Sum(Delivery.quantity)),
                    Delivery.id.is_in(order.id for order in self.orders),
                    Product.id == Delivery.product_id) \
                    .group_by(Delivery.date, Product.id, Delivery.discount) \
                    .order_by(Delivery.date, Product.name, Delivery.discount)

これは、およそ次の SQL に変換されます。

   SELECT deliveries.id, products.id, SUM(deliveries.quantity)
   FROM deliveries, products
   WHERE products.id = deliveries.id AND
->       deliveries.id IN (1,10,5,24,122, ...)
   GROUP BY deliveries.date, product.id, delivery.discount
   ORDER BY deliveries.date, product.id, delivery.discount

self.ordersが長すぎる場合、 Too many SQL variables例外が発生します。

これを達成する別の方法はありますか?

私の唯一のアイデアは、注文ごとにクエリを作成し、辞書を使用して手動で結合することです。

4

2 に答える 2

1
  • それを一時テーブル/テーブル変数に追加してリンクします。
  • SQL のバージョンによっては、XML オブジェクトを使用できる場合があります。
于 2010-01-29T12:59:52.883 に答える
0

たぶん、このターゲット配列をより小さなものに分割するだけですか? そのサイズの約 1/3 をスクリプト側でマージします。

于 2010-01-29T12:36:36.220 に答える