从不同的表中选择带有值的计数

时间:2017-08-10 13:07:12

标签: mysql

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

1 个答案:

答案 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