Я использую следующий запрос с 3 левыми соединениями:
SELECT `Date`,`Year`,`Month`, `Day`,`Hour`, `Order Line Total` from
(SELECT order_updated_at, DATE(order_updated_at) as `Date`, YEAR(order_updated_at) as `Year`, MONTHNAME(order_updated_at) as `Month`, DAYNAME(order_updated_at) as `Day`, order_time_hour_num as `Hour`, orderline_product_id, order_staff_member_id, (orderline_product_total * orderline_product_quantity) AS `Order Line Total` FROM order-lines-table) ORDERS
LEFT JOIN
(SELECT staff_id, first_name, last_name, concat(first_name, ' ', last_name) AS `Staff Member`
FROM staff-table) STAFF
ON ORDERS.order_staff_member_id = STAFF.staff_id
LEFT JOIN
(SELECT * from
(SELECT category_id, product_id, product_name
FROM products-table group by product_id) PRODUCTS
LEFT JOIN
(SELECT categories_id, categories_name
FROM categories-table group by categories_id) CATEGORIES
ON PRODUCTS.category_id = CATEGORIES.categories_id) PRODUCTS_AND_CATGORIES
ON ORDERS.orderline_product_id = PRODUCTS_AND_CATGORIES.product_id
Это занимает немного времени для запуска (2-3 секунды), что не идеально.
Индивидуальнокаждый запрос занимает менее 100 мс, но вместе (предположительно из-за объединений) для выполнения требуется многократное суммирование частей.
Кто-нибудь знает какой-либо способ оптимизировать это, используя другой метод объединений, или этоединственный вариант?