Код: Выделить всё
SELECT tt.trans_type_name as TRANSACTION_TYPE, trans.TRANSACTION_TIME, a.trans_action_name as TRANSACTION_ACTION_NAME, trans.TRANSACTION_NOTES
FROM
(SELECT CAST(added_on AS char) AS TRANSACTION_TIME, notes as TRANSACTION_NOTES, trans_type_id AS TRANS_TYPE, trans_action_id AS ACTION_ID FROM transactions WHERE added_by = 'service_app' AND notes LIKE %(domain)s AND added_on BETWEEN %(transactionStartDate)s and %(transactionEndDate)s) trans
LEFT JOIN transaction_types tt ON trans.TRANS_TYPE = tt.trans_type_id
LEFT JOIN transaction_actions a ON trans.ACTION_ID = a.trans_action_id
ORDER BY trans.TRANSACTION_TIME DESC
Выбор SELECT будет проверять более MAX_JOIN_SIZE строк; проверьте WHERE и используйте SET SQL_BIG_SELECTS=1 или SET MAX_JOIN_SIZE=#, если SELECT в порядке.
Новый запрос (написанный выше) работает быстрее, но я все еще получаю ошибку MAX_JOIN. Дело в том, что я не могу установить SET SQL_BIG_SELECTS=1. Я хочу сначала оценить подзапрос, потому что для значений, которые я подключаю, есть только 3 строки. Соединение должно происходить только для трех строк, поскольку оно просто заменяет идентификатор соответствующим значением.
Есть ли способ? Заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/798 ... uery-first
Мобильная версия