douxin8610 2016-02-16 04:56
浏览 124
已采纳

在JOIN语句中使用派生表

I have a database query in PHP similar to:

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
...

For now, suppose the $myQuery contains the following:

SELECT * FROM table1 ORDER BY dateOfSubmition DESC

I just want to use the derived table (myDerivedTable) again and again, instead of calculating it every time! But mySQL reports an error:

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

Of course it doesn't exist! By myDerivedTable, I didn't meant to mention an existent table in the database, but just a reference to the already calculated table!!

How may I achieve the desired behavior?

  • 写回答

2条回答 默认 最新

  • dousuo8400 2016-02-16 05:00
    关注

    Here's another way using conditional aggregation to get counts for different criteria

    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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法