virakochi
Устал
Необходимо оптимизировать запрос
Запрос идет по трем таблицам.
TABLE merchant:
merchant_id | merchant_billing_period
TABLE merchant_payment:
merchant_id | order_id | merchant_payment_amount
TABLE ordered_card_to_order:
order_id | price
merchant 1:n merchant_payment по merchant_id
merchant_payment 1:n ordered_card_to_order по order_id
Необходимо выбрать:
merchant_id, merchant_billing_period, сумму merchant_payment_amount, сумму price,
все сгруппированое по merchant_id
Mysql 4.1+
У меня пока получилось:
Подскажите, как это можно упростить, желательно без подзапросов.
Заранее спасибо.
Запрос идет по трем таблицам.
TABLE merchant:
merchant_id | merchant_billing_period
TABLE merchant_payment:
merchant_id | order_id | merchant_payment_amount
TABLE ordered_card_to_order:
order_id | price
merchant 1:n merchant_payment по merchant_id
merchant_payment 1:n ordered_card_to_order по order_id
Необходимо выбрать:
merchant_id, merchant_billing_period, сумму merchant_payment_amount, сумму price,
все сгруппированое по merchant_id
Mysql 4.1+
У меня пока получилось:
Код:
SELECT a.merchant_id, SUM(b.merchant_payment_amount) AS 'payment_amount', a.merchant_billing_period, price
FROM merchant a
INNER JOIN merchant_payment b ON a.merchant_id = b.merchant_id
LEFT JOIN (
SELECT a.merchant_id, SUM(c.price) AS 'price'
FROM merchant a
INNER JOIN merchant_payment b ON a.merchant_id = b.merchant_id
LEFT JOIN ordered_card_to_order c ON b.order_id = c.order_id
GROUP BY a.merchant_id
) AS c ON c.merchant_id = a.merchant_id
GROUP BY a.merchant_id
Заранее спасибо.