1

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はありませんでしたが、既に計算されたテーブルへの参照です!!

どうすれば望ましい動作を実現できますか?

4

2 に答える 2

0

条件付き集計を使用して、さまざまな基準のカウントを取得する別の方法を次に示します。

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
于 2016-02-16T05:00:27.737 に答える
0

以下を参照してください、それはあなたを助けるかもしれません。

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

于 2016-02-16T05:14:24.590 に答える