从两个表中计数,并在MYSQL中显示同一个表中的计数
我有两个带有主键和列(名称颜色)的表 我试过了从两个表中计数,并在MYSQL中显示同一个表中的计数,mysql,Mysql,我有两个带有主键和列(名称颜色)的表 我试过了 SELECT ( SELECT COUNT(*) FROM table1 ) AS count1, ( SELECT COUNT(*) FROM table2 ) AS count2 但这给了 count1|count2| 3 |3 | 我怎样才能得到像这样的颜色分组的输出 |Color|count1| count
SELECT (
SELECT COUNT(*)
FROM table1
) AS count1,
(
SELECT COUNT(*)
FROM table2
) AS count2
但这给了
count1|count2|
3 |3 |
我怎样才能得到像这样的颜色分组的输出
|Color|count1| count2
|red | 1 |2
|green| 1 |1
|blue |1 |0
您好,您可以使用union和group by
select id,color, sum(coun_t) as counts from (
(SELECT id,color,count(*) as coun_t FROM `table1` group by color)
union
(SELECT id,color,count(*) as coun_t FROM `table2` group by color)
) as p group by color order by id asc
您好,您可以使用union和group by
select id,color, sum(coun_t) as counts from (
(SELECT id,color,count(*) as coun_t FROM `table1` group by color)
union
(SELECT id,color,count(*) as coun_t FROM `table2` group by color)
) as p group by color order by id asc
结果集中的id列没有多大意义。结果集中的id列没有多大意义。
union
可以删除重复的行,如果出现这种情况,总和将不正确,此答案需要使用union all
。此外,该问题要求的不是单个总和,而是两列。union
可以删除重复的行,如果出现这种情况,总和将不正确,此答案需要使用union all
。此外,该问题不要求一个单一的总和,而是两列。
select id,color, sum(coun_t) as counts from (
(SELECT id,color,count(*) as coun_t FROM `table1` group by color)
union
(SELECT id,color,count(*) as coun_t FROM `table2` group by color)
) as p group by color order by id asc