【问题标题】:Select count with value from different tables从不同的表中选择带有值的计数
【发布时间】:2018-01-18 18:06:47
【问题描述】:

我想计算一个按用户 ID 分组的表中的所有条目。

这是我使用的查询,效果很好。

select uuid_mapping_id, count(*) from t_message group by uuid_mapping_id;

结果如下:

+-----------------+----------+
| uuid_mapping_id | count(*) |
+-----------------+----------+
|               1 |       65 |
|               4 |      277 |

现在我想显示实际的用户名,而不是 ID。 为了实现这一点,我需要两个不同的表的帮助。

有两列的表t_uuid_mapping:

  • uid_mapping_id,等于另一个表中的uuid_mapping_id。

  • 而 f_uuid 也是独一无二但完全不同的。

f_uuid 也可以在另一个表 t_abook 中找到,该表也包含列 f_name 中的名称。

我要找的结果应该是:

+-----------------+----------+
| f_name          | count(*) |
+-----------------+----------+
|           admin |       65 |
|           user1 |      277 |

我是数据库主题的新手,知道这可以通过在查询中使用 JOIN 来实现,但老实说我还没有完全理解这一点。

【问题讨论】:

  • MySQL - Join 2 tables的可能重复
  • 了解如何JOIN两个mysql表。你要找的答案都在这里了。

标签: mysql


【解决方案1】:

如果我理解正确的话:

SELECT tm.f_name, COUNT(*) as count 
FROM t_message tm
LEFT JOIN t_abook ta ON (tm.uuid_mapping_id = ta.uid_mapping_id)
GROUP BY tm.f_name

【讨论】:

  • 我改进了你的语法。
猜你喜欢
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
相关资源
最近更新 更多