php - 在 1 个查询 mysqli 中从 1 个表中选择 3 个不同的总计

标签 php mysql mysqli

我试图在一个查询中从一张表中获取 3 个总计,这可能吗?我现在处于这个位置,我尝试加入他们,但也没有成功。

$queryfr = '(SELECT COUNT(*) as toA, orderdate FROM orders WHERE win = 0 && endprice != "" GROUP BY orderdate ORDER BY starttime DESC)
            UNION
            (SELECT COUNT(*) as toB, orderdate FROM orders WHERE win = 1 && endprice != "" GROUP BY orderdate ORDER BY starttime DESC)
            UNION
            (SELECT COUNT(*) as toC, orderdate FROM orders WHERE win = 2 && endprice != "" GROUP BY orderdate ORDER BY starttime DESC)';

if ($resultfr = $conn->query($queryfr)) {
    while ($fr = $resultfr->fetch_object()){
        echo $fr->orderdate.' - '.$fr->toA.' - '.$fr->toB.' - '.$fr->toC.' <br>';
    }
} 

结果:

2015-12-07 - 1 - - 
2015-12-08 - 4 - - 
2015-12-09 - 1 - - 
2015-12-10 - 1 - - 
2015-12-11 - 5 - - 
2015-12-14 - 1 - - 
2015-12-17 - 1 - - 
2015-12-23 - 12 - - 
2015-12-24 - 1 - - 
2015-12-27 - 3 - - 
2015-12-28 - 11 - - 
2015-12-29 - 2 - - 
2015-12-30 - 6 - - 
2015-12-31 - 6 - - 
2016-01-07 - 4 - - 
2016-01-12 - 3 - - 
2015-12-21 - 1 - - 
2015-12-23 - 5 - - 
2015-12-24 - 5 - - 
2015-12-27 - 1 - - 
2015-12-28 - 14 - - 
2015-12-30 - 4 - - 
2015-12-31 - 4 - - 
2016-01-02 - 1 - - 
2015-12-08 - 2 - - 
2015-12-23 - 7 - - 
2015-12-24 - 7 - - 
2015-12-27 - 8 - - 
2015-12-28 - 9 - - 
2015-12-29 - 1 - - 
2015-12-30 - 2 - - 
2015-12-31 - 5 - - 

我想获取 $fr->toB$fr->toC 的值

最佳答案

效率不是很高,但应该可以解决问题:

SELECT 
    tbl1.orderdate,
    tbl1.toA,
    tbl2.toB,
    tbl3.toC
from
(
   SELECT COUNT(*) as toA, orderdate 
   FROM orders WHERE win = 0 && endprice != "" 
   GROUP BY orderdate ORDER BY starttime DESC
) tbl1 
LEFT JOIN
(
   SELECT COUNT(*) as toB, orderdate 
   FROM orders WHERE win = 1 && endprice != "" 
   GROUP BY orderdate ORDER BY starttime DESC
) tbl2 on tbl1.orderdate = tbl2.orderdate
LEFT JOIN
(
   SELECT COUNT(*) as toC, orderdate 
   FROM orders WHERE win = 2 && endprice != "" 
   GROUP BY orderdate ORDER BY starttime DESC
) tbl3 on tbl1.orderdate = tbl3.orderdate

关于php - 在 1 个查询 mysqli 中从 1 个表中选择 3 个不同的总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749595/

相关文章:

php - 如何将 Bootstrap Carousel 图像标题放置在 carousel div 之外?

mysql - Mysql $stmt->execute(数组($变量));没有按预期工作

php - MySQL 查询仅返回 COUNT

php - 在函数中包含我的connection.php 不起作用

mysql - 如何在不授予所有权限的情况下启用mysql远程访问

php - 在搜索结果中添加分页

php - 迭代两次并比较项目

php - 推送通知角标(Badge)计数未在 iOS 上更新

php - 如何通过 PHP 设置 .robot 文件中的变量值?

MySQL游标更新循环