Я делаю статистики работу, как это:, как повторно использовать подзапрос результат в MySQL
SUM |COND1 |COND2 |...
--------------------------
100 |80 | 70 |...
Результат SUM рассчитывается из нескольких таблиц, и CONDs являются подмножеством этого.
я написал SQL так:
select tmp1.id,sum,cond1,cond2 from (
select id, count(*) as sum from table1
group by table1.id) tmp1
left join (
select id, count(*) as cond1 from table1
where condition1
group by table1.id) tmp2 on tmp1.id=tmp2.id
left join (
select id, count(*) as cond2 from table1
where condition2
group by table1.id) tmp3 on tmp1.id=tmp3.id
проблема заключается в том, что это очень низкая эффективность, это будет лучше, если я мог бы использовать результат tmp1, но я не знаю, как это сделать что.
обновление: упростил SQL, первого подзапрос в этом случае:
select id, count(*) as sum from table1
group by table1.id) tmp1
является Simpified, реальные один довольно сложный запрос, , что я имею в виду, как повторно использовать этот вложенный выберите результат, если Я вычисляю cond1 и cond2.
Что Вы отправили слишком абстрактно - дать более подробную информацию. К сожалению, MySQL не поддерживает предложение WITH ... –