最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Knex加入以从第三张表中获取数据

IT培训 admin 10浏览 0评论

Knex加入以从第三张表中获取数据

我正在为数据库使用knex。我需要使用INNER或LEFT JOIN(如果我理解正确)来获取数据,以所需的格式获取数据。

我的表格结构:

我需要从组织以及与组织相关的所有用户中获取所有字段,格式如下:

[
  {
    id: 1, 
    name: 'some organization', 
    users: [ 
       { id: 1, first_name: 'some-name',...} ,
       ...
      ] 
   },
   ...
]

我了解,如果我想从某个组织中检索用户ID,我必须这样做:

knex('organizations')
  .join('organization_users', 'organizations.id', '=', 'organization_usersanization_id')
  .select('organizations.id', 'organizations.name', 'organization_users.user_id')

但是如何从users表中获取确切的用户?寻求建议和帮助。

回答如下:

Knex不会像这样返回嵌套结构:

I need to get all fields from organizations and also all users related to organization in format like:

[
  {
    id: 1, 
    name: 'some organization', 
    users: [ 
       { id: 1, first_name: 'some-name',...} ,
       ...
      ] 
   },
   ...
]

您需要适当地加入很多东西和别名列名,然后将结果分组以纠正对象并在javascript端构建嵌套表示。

或者,不加入数据,您可以执行一些特定于数据库的子查询+ json转换+聚合,以便所有用户在组织表结果中显示为json数组列。

或者,您首先要查询组织,然后再查询那些组织的所有用户,然后将这些用户分组并为正确的用户组分配正确的组织(如果您不使用任何ORM,这是一种方法。)>

或者您可以使用Objection.js或其他一些ORM来自动为您执行此操作。 Knex对于应用程序开发来说是一个太低级的工具。

很抱歉没有为您编写代码,也许其他人会为您提供:)

Knex加入以从第三张表中获取数据

我正在为数据库使用knex。我需要使用INNER或LEFT JOIN(如果我理解正确)来获取数据,以所需的格式获取数据。

我的表格结构:

我需要从组织以及与组织相关的所有用户中获取所有字段,格式如下:

[
  {
    id: 1, 
    name: 'some organization', 
    users: [ 
       { id: 1, first_name: 'some-name',...} ,
       ...
      ] 
   },
   ...
]

我了解,如果我想从某个组织中检索用户ID,我必须这样做:

knex('organizations')
  .join('organization_users', 'organizations.id', '=', 'organization_usersanization_id')
  .select('organizations.id', 'organizations.name', 'organization_users.user_id')

但是如何从users表中获取确切的用户?寻求建议和帮助。

回答如下:

Knex不会像这样返回嵌套结构:

I need to get all fields from organizations and also all users related to organization in format like:

[
  {
    id: 1, 
    name: 'some organization', 
    users: [ 
       { id: 1, first_name: 'some-name',...} ,
       ...
      ] 
   },
   ...
]

您需要适当地加入很多东西和别名列名,然后将结果分组以纠正对象并在javascript端构建嵌套表示。

或者,不加入数据,您可以执行一些特定于数据库的子查询+ json转换+聚合,以便所有用户在组织表结果中显示为json数组列。

或者,您首先要查询组织,然后再查询那些组织的所有用户,然后将这些用户分组并为正确的用户组分配正确的组织(如果您不使用任何ORM,这是一种方法。)>

或者您可以使用Objection.js或其他一些ORM来自动为您执行此操作。 Knex对于应用程序开发来说是一个太低级的工具。

很抱歉没有为您编写代码,也许其他人会为您提供:)

发布评论

评论列表 (0)

  1. 暂无评论