【问题标题】:MySQL Select Distinct values from 2 tables and CountMySQL 从 2 个表中选择不同的值并计数
【发布时间】:2017-07-05 20:10:51
【问题描述】:

我有 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”完成了 2 个查询(每个表一个),然后使用“SELECT DISTINCT palin,COUNT(*) FROM table2 GROUP BY palin”和然后将两个 COUNTS 相加,但我需要在一个查询中完成所有操作。

提前致谢!

【问题讨论】:

  • 我也这样做是为了从两个表中获取所有不同的“palin”值,但没有 COUNT:“SELECT DISTINCT palin FROM (SELECT palin FROM table1 UNION SELECT palin FROM table2) t GROUP BY palin "
  • 我刚刚在另一个主题中找到了答案,无论如何感谢并抱歉:stackoverflow.com/questions/6712127/…

标签: mysql select count distinct


【解决方案1】:

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

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

union all 会过滤掉相同的记录,union 会。

希望这会有所帮助。

【讨论】:

  • 确切的查询似乎是:“SELECT x.palin, COUNT(x.palin) FROM (SELECT palin FROM table1 UNION ALL SELECT palin FOM table2) x GROUP BY x.palin”
【解决方案2】:

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

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-28
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 2014-04-10
    相关资源
    最近更新 更多