我试图得到一些东西,就像:
| inventory_id | all_paid_merchandise_quantity | all_shipped_merchandise_quantity |
|--------------|-------------------------------|----------------------------------|
| 1 | 10 | 100 |
| 2 | 11 | 12 |
我已经想出了类似 的子查询all_paid_merchandise_quantity
和all_shipped_merchandise_quantity
. 但我想知道是否有更好的方法来做到这一点?
编辑:“丑陋”的查询。
SELECT
inventory.id AS inventory_id,
(SELECT sum(order_items.quantity) FROM "order" LEFT JOIN "order_items" ON order_items.order_id="order".id WHERE "order".has_shipped=true AND "order_items".merchandise_id=merchandise.id) AS all_shipped_merchandise_quantity,
(SELECT sum(order_items.quantity) FROM "order" LEFT JOIN "order_items" ON order_items.order_id="order".id WHERE "order".has_paid=true AND "order_items".merchandise_id=merchandise.id) AS all_paid_merchandise_quantity
FROM
inventory
LEFT JOIN merchandise ON merchandise.inventory_id=inventory.id
GROUP BY inventory.id, merchandise.id
ORDER BY inventory.id