Использование производной таблицы в операторе JOIN

У меня есть запрос к базе данных в PHP, похожий на:

SELECT * FROM ($myQuery) AS myDerivedTable
JOIN ( SELECT COUNT(*) FROM myDerivedTable WHERE criteriaA ) AS A
JOIN ( SELECT COUNT(*) FROM myDerivedTable WHERE criteriaB ) AS B
JOIN ( SELECT COUNT(*) FROM myDerivedTable WHERE criteriaC ) AS C
...

Пока предположим, что $myQuery содержит следующее:

SELECT * FROM table1 ORDER BY dateOfSubmition DESC

Я просто хочу использовать производную таблицу (myDerivedTable) снова и снова вместо того, чтобы вычислять это каждый раз! Но MySQL сообщает об ошибке:

#1146 - Table 'myDB.myDerivedTable' doesn't exist

Конечно это не существует! От myDerivedTableЯ не хотел упоминать существующую таблицу в базе данных, а просто ссылку на уже рассчитанную таблицу !!

Как я могу добиться желаемого поведения?

1

Решение

Вот еще один способ использования условной агрегации для подсчета различных критериев

SELECT
COUNT(CASE WHEN criteriaA THEN 1 END) AS A
COUNT(CASE WHEN criteriaB THEN 1 END) AS B
COUNT(CASE WHEN criteriaC THEN 1 END) AS C
FROM ($myQuery) AS myDerivedTable
0

Другие решения

Пожалуйста, обратитесь ниже, это может помочь вам.

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc32300.1570/html/sqlug/sqlug432.htm

0

По вопросам рекламы [email protected]