mysql - MySQL 对两个表中的列进行合并计数
问题描述
有没有办法将这两个查询组合成一个 where table1.column1 = table2.column1 以便它返回以下内容?
select column1, count(column1) as var1 from table1 where datediff(now(),createdAt) = 0 group by column1
select column1, count(column1) as var2 from table2 where datediff(now(),createdAt) = 0 group by column1
column1, var1, var2
column1, var1, var2
column1, var1, var2
column1, var1, var2
解决方案
使用子查询和 INNER JOIN
SELECT
a.column1, a.var1, b.vae2
FROM
(SELECT
column1, COUNT(column1) AS var1
FROM
table1
WHERE
DATEDIFF(NOW(), createdAt) = 0
GROUP BY column1) a
INNER JOIN
(SELECT
column1, COUNT(column1) AS var2
FROM
table2
WHERE
DATEDIFF(NOW(), createdAt) = 0
GROUP BY column1) b ON a.column1 = b.column1;
推荐阅读
- nginx - Nginx 不在反向代理中缓存静态资产
- spring-boot - 如何在 Spring Data Jpa 中通过示例查询使用投影?
- c# - 将工作表复制到新工作簿时,EPPlus 中的 ArgumentOutOfRange 异常
- mysql - 解决 perl DBD::mysql UTF-8 错误
- java - 用于授权的 Java swagger 注释
- firebase - Firebase Functions 版本的“部署到多个环境”
- javascript - Update data from a Spreadsheet - Apps Script
- c - "System" command in c giving wrong output with pipes of bash
- scala - Spark-scala 在列表中的多个列上聚合
- python-3.x - 无法从 email.utils 导入 _has_surrogates 以获取请求