Как заставить MySQL сначала оценить подзапросMySql

Форум по Mysql
Ответить
Anonymous
 Как заставить MySQL сначала оценить подзапрос

Сообщение Anonymous »

Ниже приведен запрос:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»