如何在Bookshelf.js中执行多连接查询?

时间:2015-12-09 05:32:30

标签: javascript sql bookshelf.js

基本上,我有两个表:User和user_connections

User

id | email

1 | name@domain.com

2 | name1@domain.com

user_connections

user_id | key

1 | test1

1 | test2

2 | test3

基本上,我需要构建一个查询,给定电子邮件,提取与该电子邮件ID相关联的连接列表。

我已经定义了User并指向User表。我如何获得所需的结果?

编辑:以下是所需的结果:

如果我GET的ID为1,那么我应该返回以下内容(使用JSON):

{
  {
    user_id: 1,
    key: test1
  },
  {
    user_id: 2,
    key: test2
  }
}

2 个答案:

答案 0 :(得分:0)

在传递给fetch的哈希中使用withRelated。它标识了您必须在书架模型中定义的列名称数组。

User
    .forge()
    .where({email: "me@me.com"})
    .fetch({
        withRelated: ["user_connections"] //or however you have defined it in your model defintion
    })
    .then(function(collection) {
        collection.relations// {user_connections: [ {}, {}, ...]}
    });

答案 1 :(得分:-1)

User.query().join('user_connections','User.id','=','user_connections.user_id').where('user.email','=','abc').select('user_connections.key','user_connections.user_id').then(function(collection){
    res.json(collection);
});