[英]Count from two tables and display the counts in the same table in MYSQL
I have two tables with a primary key and a column(name color) 我有两个带有主键和列的表(名称颜色)
Table1
|Color|
|red |
|green|
|blue |
Table2
|Color|
|red |
|red |
|green|
I tried 我试过了
SELECT (
SELECT COUNT(*)
FROM table1
) AS count1,
(
SELECT COUNT(*)
FROM table2
) AS count2
but this gives 但这给
count1|count2|
3 |3 |
How can i get an output grouped with the color like, 我如何获得按颜色分组的输出,
|Color|count1| count2
|red | 1 |2
|green| 1 |1
|blue |1 |0
SELECT
color
, MAX(CASE WHEN tabl = 'T1' THEN count_of END) count1
, MAX(CASE WHEN tabl = 'T2' THEN count_of END) count2
FROM (
SELECT 'T1' tabl, Color, COUNT(*) count_of FROM table1 GROUP BY Color
UNION ALL
SELECT 'T2' tabl , Color , COUNT(*) FROM table2 GROUP BY color
) d
GROUP BY color
Hi sri simply you can use union and group by 您好斯里兰卡,您可以使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.