【发布时间】:2016-05-15 17:00:01
【问题描述】:
我有一张表,上面有两个关系:
工作 -> 公司和 工作 -> 用户
我只想选择那些已经有用户附加到它们的作业并让用户与它们相关联。我试过了:
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 做到这一点?
【问题讨论】:
-
谁投了反对票……你能解释一下原因吗?没有解释的反对票是没有用的。
标签: javascript mysql orm bookshelf.js knex.js