mysql - 将两个查询合并到一个查询中
问题描述
我有这个图表代码并且工作得很好。如何将这两个单独的查询合并为一个查询?
$db->query()
PS:如果你问为什么在这里,我会使用 mysqli 类。
我的代码:
//Query one
$qs=$db->query('SELECT
(DATE_FORMAT(regtime, "%M")) AS luna,
COUNT(id) AS devizieri FROM edev_useri WHERE groupid = 6 AND YEAR(regtime) = YEAR(CURRENT_DATE)
GROUP BY (DATE_FORMAT(regtime, "%M"))
ORDER BY luna ASC');
//Query two
$qz=$db->query('SELECT
(DATE_FORMAT(regtime, "%M")) AS bluna,
COUNT(id) AS beneficiar FROM edev_useri WHERE groupid = 7 AND YEAR(regtime) = YEAR(CURRENT_DATE)
GROUP BY (DATE_FORMAT(regtime, "%M"))
ORDER BY bluna ASC');
解决方案
这是一个解决方案。
SELECT t0.*, t1.devizieri, t2.beneficiar FROM
(SELECT
(DATE_FORMAT(regtime, "%M")) AS luna
FROM edev_useri
WHERE (groupid = 6 OR groupid = 7) AND YEAR(regtime) = YEAR(CURRENT_DATE)
GROUP BY (DATE_FORMAT(regtime, "%M"))
ORDER BY luna ASC ) AS t0
LEFT JOIN
(SELECT
(DATE_FORMAT(regtime, "%M")) AS luna,
COUNT(id) AS devizieri FROM edev_useri WHERE groupid = 6 AND YEAR(regtime) = YEAR(CURRENT_DATE)
GROUP BY (DATE_FORMAT(regtime, "%M"))
ORDER BY luna ASC ) AS t1
ON t0.luna = t1.luna
LEFT JOIN
(SELECT
(DATE_FORMAT(regtime, "%M")) AS luna,
COUNT(id) AS beneficiar FROM edev_useri WHERE groupid = 7 AND YEAR(regtime) = YEAR(CURRENT_DATE)
GROUP BY (DATE_FORMAT(regtime, "%M"))
ORDER BY luna ASC) AS t2
ON t0.luna = t2.luna
推荐阅读
- javascript - Javascript / Webix将对象引用为数组
- .net - Is it possible to configure the file name of a RollingFileAppender to include date followed by process ID?
- c++ - 没有规则使用 CMAKE 添加库来制作目标。库单独编译就好了
- mysql - 不使用 with 子句重写 sql
- docker - 我在 docker 容器中运行 cassandra。通过复制 cassandra 表生成的文件存储在哪里?
- asp.net - 为什么 web.config 文件会为 CSP 中的不安全内联引发无法识别的错误?
- python - 无法在 mac os x mojave 上安装 mysqlclient
- http - Google App Engine 上的封闭正文读取无效
- android - 手机锁定时保持应用程序运行的问题
- intellij-idea - IntelliJ:主题不适用于 src 文件夹之外的文件