首页 > 解决方案 > 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

标签: mysqlsql

解决方案


使用子查询和 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;

推荐阅读