2017-08-10 77 views
0

我想计算按用户标识分组的一个表格中的所有条目。从不同表格中选择具有数值的计数

这是我使用的查询工作正常。

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

,这些都是结果:

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

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

  • uid_mapping_id,这在其他表等于uuid_mapping_id:

    其中有两列的表t_uuid_mapping。

  • 而f_uuid也是独特的,但完全不同。

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

我寻找的结果应该是:

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

我是新来的数据库话题和理解,这可以通过使用连接查询,但要实现说实话,我并没有完全理解这还没有。

+1

的可能的复制[MySQL的 - 加入2个表(https://stackoverflow.com/questions/10230438/mysql-join-2-tables) – Martin

+0

了解如何'加入'两个MySQL表。你正在寻找的答案都已经在这里。 – Martin

回答

-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 
+0

现在我正确 - 我添加“on” - – areklipno

+0

我改进了你的语法。 – Martin