小编Did*_*idi的帖子

使用Knex.js的select语句的子查询

我正在尝试使用Knex使用子查询创建以下查询:

SELECT 
  t.*, 
  (SELECT COUNT(*) FROM team_users tu WHERE TeamID = t.ID) AS UserCount,
  (SELECT COUNT(*) FROM team_access ta WHERE TeamID = t.ID) AS AppCount
FROM teams t WHERE OwnerUserID = _UserID;
Run Code Online (Sandbox Code Playgroud)

结果应该是team表,其中包含来自不同表的UserCount和AppCount的计数聚合(team_users,team_access)

id | Name      | OwnerUserID   | UserCount | AppCount
-----------------------------------------------------
134| Team A    | 1538          | 7         | 6
135| Team B    | 1538          | 4         | 2
136| Team C    | 1538          | 12        | 1
Run Code Online (Sandbox Code Playgroud)

我认为是一个等效的knex实现是:

var subquery1 = Knex.knex('team_users').count('*').where('TeamID', 'teams.ID').as('UserCount');
var subquery2 = Knex.knex('team_access').count('*').where('TeamID', …
Run Code Online (Sandbox Code Playgroud)

javascript mysql sql-server node.js knex.js

6
推荐指数
1
解决办法
5866
查看次数

标签 统计

javascript ×1

knex.js ×1

mysql ×1

node.js ×1

sql-server ×1