如何在BookshelfJS中通过加入来过滤结果
How do I filter results by a join in BookshelfJS?
我有一个表,上面有两个关系:
工作->公司和作业->用户
我只想选择那些已经附加了用户的作业,并让用户与它们关联。我试过了:
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
如何使用BookshelfJS或Knex来完成此操作?
我通过使用查询生成器完成了它。
new Job().query(function(qb){
qb.innerJoin('users', 'user_id', 'users.id');
}).fetchAll({
withRelated: ['company', 'users']
});
基本上将Bookshelf与Knex语句相结合。
如果这在纯书架上是可能的,请告诉我,我会投票支持答案!
相关文章:
- 如何在BookshelfJS中通过加入来过滤结果
- AEM/CQ应用程序:基于过滤结果的PDF生成器
- 如何根据角度中的复选框选择过滤结果
- Jquery 从选择选择的插件过滤结果
- 如何使用 backbone.localStorage 获取过滤结果
- 如何使用jquery从数据表中单击按钮时选择过滤结果
- 过滤结果以显示与ng匹配的结果显示angular js
- 仅为instagram视频过滤结果-instafeed.js
- 如何防止通过Twitter Bootstrap'过滤结果;s打字机
- 谷歌地图-基于JavaScript对象过滤结果
- AngularJS:过滤数组并访问被过滤结果中的嵌套数组
- 如何在Angular中使用复选框来过滤结果
- Symfony2过滤结果- ajax请求的问题
- 如何从 javascript 中的数组对象获取过滤结果
- 无法在控制器上访问ngRepeat的过滤结果
- JavaScript | AngularJS:根据日期过滤结果过滤项目
- 带过滤结果的Angular ng-if
- 基于IS AngularJS过滤结果
- 如何在angularjs中基于ID过滤结果
- 从javascript对象中过滤结果