Есть таблица units с колонками id, user, group, amount, multi_id, x,y.
Есть таблица multi с колонками id, value.
Есть запрос для выборки записей из units:
(SELECT id, amount FROM units WHERE group_id = 0 AND x=? AND y=?) UNION (SELECT MIN(id), SUM(amount) as amount FROM units WHERE group!= 0 AND x=? AND y=? GROUP BY group) LIMIT ?,?
Юнион из-за того что группировать надо только юниты которые состоят в группе (group >0), если у какой-то записи group = 0, то её не надо ни с чем группировать. Вопрос в том, как сделать JOIN с этим запросом, надо умножить units.amount на multi.value где units.multi_id сходит с multi.id и возвратить как total_power. Подскажите, пожалуйста, как сделать хороший (быстрый при большом количестве записей) запрос?