Mysql 从不同的表中选择“带值计数”
我想统计一个表中按用户id分组的所有条目 这是我使用的查询,效果很好Mysql 从不同的表中选择“带值计数”,mysql,Mysql,我想统计一个表中按用户id分组的所有条目 这是我使用的查询,效果很好 select uuid_mapping_id, count(*) from t_message group by uuid_mapping_id; 结果如下: +-----------------+----------+ | uuid_mapping_id | count(*) | +-----------------+----------+ | 1 | 65 | |
select uuid_mapping_id, count(*) from t_message group by uuid_mapping_id;
结果如下:
+-----------------+----------+
| uuid_mapping_id | count(*) |
+-----------------+----------+
| 1 | 65 |
| 4 | 277 |
现在我想显示实际的用户名,而不是ID。
要做到这一点,我需要两个不同的表格的帮助
表t_uuid_映射有两列:
uid\u mapping\u id,它等于另一个表中的uuid\u mapping\u id
f_uuid也是独一无二的,但完全不同
f_uuid也可以在另一个表t_abook中找到,该表也包含f_name列中的名称
我想要的结果应该是:
+-----------------+----------+
| f_name | count(*) |
+-----------------+----------+
| admin | 65 |
| user1 | 277 |
我对数据库主题还不熟悉,我知道这可以通过在查询中使用JOIN来实现,但老实说,我还没有完全理解这一点。如果我理解正确:
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
了解如何连接两个mysql表的可能重复。你要找的答案都在这里了。我已经改进了你的语法。