假设我有三个表(每个表中都有列):
USERS: id, name, account_id
账户:id,姓名
事件:event_id、user_id、日期
我想从 EVENTS 中获取每个用户在某个日期范围内的事件总数,以及用户名和帐户名。
我可以使用 GROUP BY 按 user_id 对结果进行分组,但我如何将其加入用户和帐户以在每一行中获取该信息?我正在尝试获得如下输出:
+-------+---------------------+--------+
| name | account_name |count(*)|
+-------+---------------------+--------+
| Joe | XYZ, Inc. | 10 |
| Bob | Vandalay Industries | 21 |
| Mary | Account Name Here | 32 |
+-------+---------------------+--------+
其中第三列是指定日期范围内该 user_id 在 EVENTS 表中的事件总数。
抱歉,我永远无法掌握这样的联接......
最佳答案
假设您在 users
和 accounts
表上有一个 id
列
SELECT
users.name,
accounts.name,
count(events.event_id)
FROM
users
INNER JOIN events ON events.user_id = users.id
INNER JOIN accounts ON accounts.id = users.account_id
WHERE
events.date between <startdate> AND <enddate>
GROUP BY
users.name,
accounts.name
关于mysql - 从一个表中获取结果,按用户和日期分组,从另一个表中加入用户名和帐户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242268/