我必须在不同的表中找到一个字段,也就是说,我必须检查搜索是在Customer表的不同字段中进行的,还是在Shops表的不同字段中进行的,还是在ContactPerson表的不同字段中进行的
Customer、Person和Customer Shops表是1-N,并且是关联的
我的"search“变量就是我想要找到的。
这是我的代码
CustomerPersonsRelation()
CustomerShop()
var result = await CustomerModel.findAll({
...params,
include: [
{model : ShopModel},
{model: ContactPersonModel}
]
})所有的都是进口的,不用担心。我的参数如下:
{
where: {
$or: [
{
'$Customer.customer_name$': { $like: '%' + search + '%' },
},
{
'$Customer.customer_fiscal_name$': { $like: '%' + search + '%' },
},
{
'$Customer.customer_responsable_name$': { $like: '%' + search + '%' },
},
{
'$Customer.customer_responsable_phone$': { $like: '%' + search + '%' },
},
{
'$Customer.customer_web$': { $like: '%' + search + '%' },
},
{
'$Shops.shop_name$': { $like: '%' + search + '%' },
},
{
'$Shops.shop_phone$': { $like: '%' + search + '%' },
},
{
'$Shops.shop_mobile$': { $like: '%' + search + '%' },
},
{
'$ContactPersons.contactp_name$': { $like: '%' + search + '%' },
},
{
'$ContactPersons.contactp_phone$': { $like: '%' + search + '%' },
},
{
'$ContactPersons.contactp_mobile$': { $like: '%' + search + '%' },
}
]
},
limit: 3
})
}但这将返回以下错误: error: SequelizeDatabaseError:无法绑定由多部分组成的标识符"ContactPersons.contactp_mobile“。(此错误适用于所有相关字段。)
我能为此做些什么呢?
发布于 2019-08-20 21:41:10
解决了!
经过许多测试后,我发现这个错误并不是相关的,也不在OR中,而是在极限中。
在搜索之后,我解决了这个问题,在includes中添加了duplicating: false。
最后的代码是:
var result = await CustomerModel.findAll({
include: [
{model : ShopModel, require: true, duplicating: false},
{model: ContactPersonModel, require: true, duplicating: false}
],
...params,
raw
})https://stackoverflow.com/questions/57571795
复制相似问题