Заставить 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 строки. Соединение должно происходить только для трех строк, поскольку оно просто заменяет идентификатор соответствующим значением.
Есть ли способ? Заранее спасибо.
Изменить:
Больше ясности — 3 таблицы: транзакции, transaction_types и transaction_actions.
Базовая таблица — это транзакции, содержащая более миллиона строк. У него есть два идентификатора, которые ссылаются на две другие таблицы. Я хочу выбрать имена вместо идентификаторов, поэтому присоединяюсь к ним.

Подробнее здесь: https://stackoverflow.com/questions/798 ... uery-first
Ответить

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

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

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

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

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