php - 组合两个 MySQL 查询?

标签 php mysql

$query1 = 'select DATE_FORMAT(time, "%Y-%m-%d") as date,
        count(*) as phone_TotalPerDay
        from numrequest
        where id_usr = "'.$id_user.'"
        AND id_re ="'.$id_re.'"
        AND request="ph"
        group by id_usr, year(time), DAYOFYEAR(time)
        order by year(time) DESC, DAYOFYEAR(time) DESC';  


$query2 = 'select DATE_FORMAT(time, "%Y-%m-%d") as date,
        count(*) as fax_TotalPerDay
        from numrequest
        where id_usr = "'.$id_user.'"
        AND id_re ="'.$id_re.'"
        AND request="fx"
        group by id_usr, year(time), DAYOFYEAR(time)
        order by year(time) DESC, DAYOFYEAR(time) DESC';  

有没有办法结合这两个查询。我真的需要它们在一种资源中。 目前,每个都显示每天号码请求的数量。我想将它们组合起来,以便每个 date 都有 phone_TotalPerDayfax_TotalPerDay

最佳答案

您可以使用条件总和,例如

$query1 = 'select DATE_FORMAT(time, "%Y-%m-%d") as date,
    sum(if(request = "ph", 1, 0)) phone_TotalPerDay,
    sum(if(request = "fx", 1, 0)) fax_TotalPerDay
    from numrequest
    where id_usr = "'.$id_user.'"
    AND id_re ="'.$id_re.'"
    group by id_usr, year(time), DAYOFYEAR(time)
    order by year(time) DESC, DAYOFYEAR(time) DESC';

如果请求类型匹配,if 语句将返回 1,否则返回 0,因此对这些值求和可有效计算与此条件匹配的行,并且我已从 where 子句中删除了请求条件。

关于php - 组合两个 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119597/

相关文章:

php - 使用 eval() 按 WordPress 的多个条件对多数组进行排序

php - Chef Recipe 在一台服务器上运行迁移

php - 哪种加密算法最适合加密 cookie?

php - PDO INSERT INTO 准备好的数组

mysql - 如何在MySQL中检索group by子句中最大日期的字段基值?

php - 如何创建带限制的Mysql Select语句

使用 IN 的 MySQL LIMIT 和 GROUP BY?

php - 如何在字符串 wordsolver 应用程序中的简单 mysql/php 单词中的字符串中找到单词匹配项?

java - 调用MySql数据库时出现空指针异常

PHP显示与sql执行不同的查询