MySQL从2个表和Count中选择不同的值

时间:2017-02-16 15:50:31

标签: mysql select count distinct

我有2个表,它们都有一个名为“palin”的varchar(10)字段,我想要MySQL查询从2个表中接收所有不同的“palin”值并计算总共有多少行每个“palin”值,如:

table1:id1 / palin1,id2 / palin2,id3 / palin3

table2:id1 / palin1,id2 / palin3,id3 / palin4

结果:palin1 / 2,palin2 / 1,palin3 / 2,palin4 / 1

我通过使用“SELECT DISTINCT palin,COUNT(*)FROM table1 GROUP BY palin”,然后“SELECT DISTINCT palin,COUNT(*)FROM table2 GROUP BY palin”完成了2个查询(每个表一个)然后将两个COUNTS相加,但我需要在一个查询中完成所有操作。

提前致谢!

2 个答案:

答案 0 :(得分:0)

它不明白为什么要合并到2个表中的不同值,但请尝试以下操作:

select distinct palin, count(palin) from table1 union all select distinct palin, count(palin) from table2 group by palin;

Union all会过滤掉相同的记录,但联盟会这样做。

希望这有帮助。

答案 1 :(得分:0)

确切的查询似乎是:" SELECT x.palin,COUNT(x.palin)FROM(SELECT palin FROM table1 UNION ALL SELECT palin FOM table2)x GROUP BY x.palin"

谢谢!