【发布时间】:2022-01-20 12:28:33
【问题描述】:
所以我的数据库中有 3 个表,其中所有 3 个表都包含一个具有相似数据的列,但是所有 3 个表中该列的名称都不同,下面是一个示例。
禁止表
| user_id | ban_user_id | ban_date | reason | end_date |
|---|---|---|---|---|
| 1300 | 1 | xyz | xyz | xyz |
| 32 | 1 | xyz | xyz | xyz |
| 43 | 2 | xyz | xyz | xyz |
报告表
| user_id | last_modified_user_id | report_date | reason | end_date |
|---|---|---|---|---|
| 1300 | 1 | xyz | xyz | xyz |
| 32 | 2 | xyz | xyz | xyz |
| 43 | 2 | xyz | xyz | xyz |
警告表
| user_id | warning_user_id | warning_date | reason | end_date |
|---|---|---|---|---|
| 1300 | 1 | xyz | xyz | xyz |
| 32 | 2 | xyz | xyz | xyz |
| 43 | 3 | xyz | xyz | xyz |
现在我想通过组合这3个表来获取数据,其中ban_user_id、last_modified_user_id和warning_user_id包含采取行动的员工的数据,所以我想按员工id对数据进行分组。
我要找的输出如下:
| staff_id | total_reports | total_bans | total_warnings |
|---|---|---|---|
| 1 | 1 | 2 | 1 |
| 2 | 2 | 1 | 1 |
| 3 | 0 | 0 | 1 |
它通过将第二列、ban_user_id、last_modified_user_id、warning_user_id 分别分组来计算每个表的数据。而不是合并数据。
我尝试了 UNION All 之类的东西,但没有成功。
提前感谢您的帮助
【问题讨论】:
标签: mysql sql group-by count union