joinbookshelf.js
我如何在bookshelf.js中实现以下关系
SELECT user_accounts.user_id, `event_id` FROM `calendar_events` JOIN user_accounts ON user_accounts.user_id = calendar_events.`created_by` LIMIT 10
我的模型
var CalendarEvent = bookshelf.Model.extend({ tableName: 'calendar_events', hasTimestamps: ['created_on'], user: function() { return this.hasOne('UserAccount','user_id'); } }); var UserAccount = bookshelf.Model.extend({ tableName: 'user_account' });
如果您想获得精确的样式查询,可以使用knex查询生成器并尝试构build一个查询以满足您的需求
没有testing过,但应该是这样的
CalendarEvent.forge().query(function(qb){ qb.join('user_accounts', 'user_accounts.user_id', '=', 'calendar_events.created_by'); //qb.where() //if you wanted //qb.andWhere(); //and if you wanted more qb.limit(10); }) .fetchAll();
(你不需要.where或.andWhere,只需添加那些有趣的)
这可能是纯粹在书架上做的,但我现在还不确定。