【问题标题】:Sequelize where condition from join resultSequelize where 条件来自连接结果
【发布时间】:2020-04-20 14:24:29
【问题描述】:

我有表product,关系是product belong to categoryproduct belong to outletproduct belong to market。 现在我需要搜索名称如 %keyword% 或出口名称如 %keyword% 或类别名称如 %keyword% 的产品 连接表后可以在哪里条件?

let where = {
        active: true,
        [Op.or]: [
            { name: { [Op.like]: '%' + keyword + '%' } },
            { 'category.name': { [Op.like]: '%' + keyword + '%' } },
            { 'outlet.name': { [Op.like]: '%' + keyword + '%' } },
        ]
    }
let inWhere = { active: true };
model.findAll({
    attributes: ['name'],
    where,
    include: [
        {
            required: false,
            model: db.category,
            as: 'category',
            where: inWhere,
            attributes: ['name']
        },
        {
            required: false,
            model: db.outlet,
            as: 'outlet',
            where: inWhere,
            attributes: ['name', 'city']
        },
        {
            required: false,
            model: db.market,
            as: 'market',
            where: { active: true },
            attributes: ['name']
        }
    ]
})

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

    是的,这是可能的。您的 where 子句应如下 -

    where: {
      [Op.or]: [
        { name: { [op.like]: '%${keyword}%' } },
        { '$`category`.`name`$': { [op.like]: '%${keyword}%' } },
        { '$`outlet`.`name`$': { [op.like]: '%${keyword}%' } }
      ]
    },
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 2016-09-06
      相关资源
      最近更新 更多