我想计算按用户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来实现,但说实话我还没有完全理解这一点。
答案 0 :(得分:-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