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”。调用“查询”似乎覆盖了这个约束。不管是谁否决了。。。你能解释一下原因吗?没有解释的否决票是没有用的。