我有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相加,但我需要在一个查询中完成所有操作。
提前致谢!
答案 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"
谢谢!