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

编程入门 行业动态 更新时间:2024-10-11 19:17:47

Knex加入以从<a href=https://www.elefans.com/category/jswz/34/1537393.html style=第三张表中获取数据"/>

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加入以从第三张表中获取数据

本文发布于:2024-05-07 14:11:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756625.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:第三张   数据   Knex

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!