Если мне нужно получить пять + разных значений SUM со схожими условиями WHERE, лучший (возможно, единственный) способ сделать это с помощью одного запроса с пятью подзапросами?Например, мой запрос:
SELECT user,
(SELECT SUM(amount) FROM table t, table2 t2 WHERE t.table2_id = t2.id AND table2.type = 1 AND user = 1 AND date = x) AS one,
(SELECT SUM(amount) FROM table t, table2 t2 WHERE t.table2_id = t2.id AND table2.type = 2 AND user = 1 AND date = x) AS two,
(SELECT SUM(amount) FROM table t, table2 t2 WHERE t.table2_id = t2.id AND table2.type = 3 AND user = 1 AND date = x) AS three,
(SELECT SUM(amount) FROM table t, table2 t2 WHERE t.table2_id = t2.id AND table2.type = 4 AND user = 1 AND date = x) AS four,
(SELECT SUM(amount) FROM table t, table2 t2 WHERE t.table2_id = t2.id AND table2.type = 5 AND user = 1 AND date = x) AS five
FROM table
WHERE user = 1
Пока мои запросы были очень быстрыми, но я беспокоюсь о значении пяти + подзапросов, когда есть еще много записей.
Ииз любопытства, один такой запрос с пятью подзапросами имеет преимущество в производительности / недостаток по сравнению с пятью отдельными запросами?Я предполагал, что это быстрее, потому что это только одна поездка в базу данных против 5?
РЕДАКТИРОВАТЬ: есть таблица 2 из примерно 60 записей, которые используются для классификации тысяч записей в таблице 1. Каждая запись в таблице2 классифицируется по значению типа 1 - 5 (это то, что я использую для группировки элементов, для которых требуется сумма).