我正在尝试根据模型的3个属性的串联进行搜索 为此,我使用了concat函数,但是由于我的模型具有多个关系,因此我不得不为我的模型使用别名,但是在列出结果时,我总是会遇到以下错误:
错误: an entry for the "cliente" table is missing in the clause
堆栈:
我的查询:
async search(criterio: string) {
try {
let querybase: IFindOptions < Bill > ;
const wheres: any = [];
querybase = {
include: [{
model: Persona,
as: 'cliente',
}],
}
const wheres = [];
if (criterio != null) {
const arrayCriterio = [{
[Op.or]: [
Sequelize.where(
Sequelize.fn('concat', Sequelize.col('cliente.apellido_paterno'), ' ', Sequelize.col('cliente.apellido_materno'), ' ', Sequelize.col('cliente.nombre')), {
[Op.iLike]: `%${criterio}%`,
},
),
Sequelize.where(
Sequelize.fn('concat', Sequelize.col('cliente.apellido_paterno'), ' ', Sequelize.col('cliente.nombre'), ' ', Sequelize.col('cliente.apellido_materno')), {
[Op.iLike]: `%${criterio}%`,
},
),
Sequelize.where(
Sequelize.fn('concat', Sequelize.col('cliente.apellido_materno'), ' ', Sequelize.col('cliente.apellido_paterno'), ' ', Sequelize.col('cliente.nombre')), {
[Op.iLike]: `%${criterio}%`,
},
),
Sequelize.where(
Sequelize.fn('concat', Sequelize.col('cliente.apellido_materno'), ' ', Sequelize.col('cliente.nombre'), ' ', Sequelize.col('cliente.apellido_paterno')), {
[Op.iLike]: `%${criterio}%`,
},
),
Sequelize.where(
Sequelize.fn('concat', Sequelize.col('cliente.nombre'), ' ', Sequelize.col('cliente.apellido_materno'), ' ', Sequelize.col('cliente.apellido_paterno')), {
[Op.iLike]: `%${criterio}%`,
},
),
Sequelize.where(
Sequelize.fn('concat', Sequelize.col('cliente.nombre'), ' ', Sequelize.col('cliente.apellido_paterno'), ' ', Sequelize.col('cliente.apellido_materno')), {
[Op.iLike]: `%${criterio}%`,
},
),
],
}, ];
wheres.push(arrayCriterio);
}
querybase.where = {
[Op.and]: wheres,
};
const clientes = await this.bill.findAll(querybase);
return clientes;
} catch (error) {
return error;
}
}