gpt4 book ai didi

mysql - BookShelf or MySQL如何选择column1-column2作为别名

转载 作者:行者123 更新时间:2023-11-29 06:03:12 24 4
gpt4 key购买 nike

在一个原始的 MySQL 查询中,我有这样的东西:

Select total_sales - over_head_costs As net_sales from departments;

如何使用 BookShelf/knex 查询实现相同的功能?最好不要使用 knex.raw。

我的尝试涉及以下内容:

let Department = bookshelf.Model.extend({
tableName: 'departments',
idAttribute: 'department_id',
},{
getDepartments: function(){
return this.fetchAll({columns: ['department_id', 'department_name', 'over_head_costs', 'total_sales - over_head_costs AS net_sales']})
.then(models=>models.toJSON());
},
});

最佳答案

Bookshelf 没有此功能,但它为此提供了一个插件:Virtuals .无需安装任何东西,您只需在使用 bookshelf.plugin('virtuals') 加载 Bookshelf 后立即加载它。

您的模型应该如下所示:

const Department = bookshelf.Model.extend({
tableName: 'departments',
idAttribute: 'department_id',
virtuals: {
net_sales: function() {
return this.get('total_sales') - this.get('over_head_costs');
}
}
},{
getDepartments: function(){
return this.fetchAll({columns: ['department_id', 'department_name', 'over_head_costs', 'net_sales']})
.then(models=>models.toJSON());
},
});

关于mysql - BookShelf or MySQL如何选择column1-column2作为别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43510315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com