У меня возникла небольшая проблема с запросом, который я хочу построить.Идея состоит в том, чтобы построить новую таблицу, основанную на соединении с той же старой таблицей, где выполняется какой-то «дорогой» расчет.
Проблема
Я могуне использовать вычисленный результат (псевдоним) списка полей в предложении where (или on) базового выбора.
Почему бы не вычислить его снова?
- Я бы не хотел снова вычислять результат, так как это таблица входа 1,5 млн., И я присоединяюсь ко всему.В предложении on есть еще несколько условий, но это не влияет на количество операций.Поэтому я бы предпочел не делать это дважды за соединение.
- Я просто хочу сейчас, если это возможно:)
Оператор SQL
CREATE TABLE `newTable` AS (
SELECT (*COMPUTATION*) AS `calculated`
FROM oldTable AS t1
JOIN oldTable as t2 ON (
t1.user != t2.user
AND *other conditions*
)
WHERE `calculated` < *some number*
);
Я уже думал об использовании функций или чего-то еще, но я думаю, что это должно быть выполнимо в одном простом запросе.