我有两组表,如下所示
用户表
| id| name |
|----|------|
| 1 | x |
| 2 | y |
| 3 | z |
访问表
| event_id | user_id |
|----------|---------|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 1 |
| 5 | 1 |
| 1 | 2 |
如何获取每个用户的访问次数以及用户名。 我知道原始SQL可以与knex一起使用,并且可以通过SQL查询轻松地做到这一点。我好奇地知道仅使用knex js是否可行。
await knex('visits').count().groupBy('user_id');
以上查询将为我提供每个用户的访问次数。如何在同一查询中获取用户名。
我正在寻找如下所示的输出
| user_id | name | count |
|----------|------|-------|
| 1 | x | 3 |
| 2 | y | 2 |
| 3 | z | 1 |
答案 0 :(得分:2)
尝试:
knex('visits')
.select(['visits.user_id AS user_id', 'user.name'])
.count('visits.user_id AS count')
.leftJoin('user', 'user.id', 'visits.user_id')
.groupBy(['visits.user_id', 'user.name']);