我正在使用knex.js库从表中选择所有行,并从辅助表中获取count()。以下代码可以正常工作:
package.json
此查询显示表empresas中的所有行,如果表procesos2中有行,则计数。
不,我想为条件 knex.schema.raw("SET sql_mode=''").then(() => {
knex.select('empresas.id','empresas.rut','empresas.empresa','empresas.razon_social','procesos2.id','procesos2.id_empresas','procesos2.estado')
.from('empresas')
.leftJoin('procesos2', 'empresas.id', 'procesos2.id_empresas')
.count('procesos2.id as total')
.groupBy('empresas.id')
添加一个条件
如果我添加此where子句,我将获得正确的计数,但只显示一行,而不显示empresas的所有行。
如何添加条件以获取表empresas中所有行的计数。
答案 0 :(得分:0)
可以在knex.js中使用on()将条件添加到join语句,并使用andOn()添加条件。
这正在工作
knex.schema.raw("SET sql_mode=''").then(() => {
knex.select('empresas.id AS ide','empresas.rut','empresas.empresa','empresas.razon_social','procesos2.id','procesos2.id_empresas','procesos2.estado')
.from('empresas')
.leftJoin('procesos2', function() {
this.on('procesos2.id_empresas ', '=', 'empresas.id')
.andOn('procesos2.estado', '=', 0)
})
.count('procesos2.id as total')
.groupBy('empresas.id')