首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ORs序列化多表关联查询

问使用ORs序列化多表关联查询
EN

Stack Overflow用户
提问于 2019-08-20 18:38:25
回答 1查看 104关注 0票数 2

我必须在不同的表中找到一个字段,也就是说,我必须检查搜索是在Customer表的不同字段中进行的,还是在Shops表的不同字段中进行的,还是在ContactPerson表的不同字段中进行的

Customer、Person和Customer Shops表是1-N,并且是关联的

我的"search“变量就是我想要找到的。

这是我的代码

代码语言:javascript
复制
CustomerPersonsRelation()
CustomerShop()
    var result = await CustomerModel.findAll({
        ...params,
        include: [
            {model : ShopModel},
            {model: ContactPersonModel}
        ]
    })

所有的都是进口的,不用担心。我的参数如下:

代码语言:javascript
复制
{
        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“。(此错误适用于所有相关字段。)

我能为此做些什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 21:41:10

解决了!

经过许多测试后,我发现这个错误并不是相关的,也不在OR中,而是在极限中。

在搜索之后,我解决了这个问题,在includes中添加了duplicating: false。

最后的代码是:

代码语言:javascript
复制
    var result = await CustomerModel.findAll({
        include: [
            {model : ShopModel, require: true, duplicating: false},
            {model: ContactPersonModel, require: true, duplicating: false}
        ],
        ...params,
        raw
    })
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57571795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档