Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过加入BookshelfFJS筛选结果?_Javascript_Mysql_Orm_Bookshelf.js_Knex.js - Fatal编程技术网

Javascript 如何通过加入BookshelfFJS筛选结果?

Javascript 如何通过加入BookshelfFJS筛选结果?,javascript,mysql,orm,bookshelf.js,knex.js,Javascript,Mysql,Orm,Bookshelf.js,Knex.js,我有一张表,上面有两个关系: 工作->公司和 作业->用户 我只想选择那些已经附加了用户的作业,并获取与之关联的用户。我试过: new Job().fetchAll({withRelated: ['user']}) 但是,这将始终返回附加了用户的所有作业。我还尝试: new Job().fetchAll({ withRelated: [{ 'user':function(qb){ qb.where('id','=','job.user_id');

我有一张表,上面有两个关系:

工作->公司和 作业->用户

我只想选择那些已经附加了用户的作业,并获取与之关联的用户。我试过:

new Job().fetchAll({withRelated: ['user']})
但是,这将始终返回附加了用户的所有作业。我还尝试:

new Job().fetchAll({
    withRelated: [{
        'user':function(qb){
            qb.where('id','=','job.user_id');
        }
    }]
});
以及我能想到的每个用户子查询组合。但这只允许我过滤用户关系返回的结果

我知道SQL,但我想使用ORM。因此,结束查询应该如下所示:

SELECT * FROM jobs JOIN users ON users.id = jobs.user_id LEFT JOIN companies on job.company_id = companies.id

如何使用BookshelfFJS或Knex实现这一点?

我使用查询生成器实现了这一点

new Job().query(function(qb){
    qb.innerJoin('users', 'user_id', 'users.id');
}).fetchAll({
   withRelated: ['company', 'users']
});
基本上结合了书架和Knex语句


如果这在纯书架上是可能的,让我知道,我会投票的答案

注意:新作业({id:1})。查询不会筛选“id=1”。调用“查询”似乎覆盖了这个约束。不管是谁否决了。。。你能解释一下原因吗?没有解释的否决票是没有用的。