在 select knex js 内计数
Counting inside select knex js
我有两套table,如下所示
用户table
| id| name |
|----|------|
| 1 | x |
| 2 | y |
| 3 | z |
访问量table
| 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 |
尝试:
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']);
我有两套table,如下所示
用户table
| id| name |
|----|------|
| 1 | x |
| 2 | y |
| 3 | z |
访问量table
| 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 |
尝试:
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']);