Sequelize关联查询筛选报错:where子句未知列'SiteService.service'
Sequelize关联查询筛选SiteService字段报错问题
我用Sequelize实现站点搜索功能,支持按站点域名、账户名称、客户名称及服务名称筛选。目前其他筛选条件正常,仅SiteService相关的筛选报错;无搜索词时能正常获取SiteService关联数据,添加搜索词后就报错。
查询代码
const sites = await Site.findAndCountAll({ order, limit: limits.limit, offset: limits.offset, where, include: [ { model: Account, attributes: ['account_id', 'name', 'customer_id'], paranoid: false, required: true, include: [ { model: Customer, attributes: ['customer_id', 'name'], paranoid: false, required: true, }, ], }, { model: Version, as: 'versions', limit: 1, order: [['version_id', 'desc']], attributes: ['status', 'config', 'user_id', 'updated_at', 'version_id', 'updated_by', 'is_prod'], include: [ { model: User, as: 'updatedByUser', attributes: ['email'], paranoid: false, }, ], }, { model: SiteService, attributes: ['service'], paranoid: false, required: true, } ], distinct: true, });
搜索条件逻辑
if (search) { where[Op.or] = [ { domain: { [Op.like]: `%${search}%` } }, { '$Account.name$': { [Op.like]: `%${search}%` } }, { '$Account.Customer.name$': { [Op.like]: `%${search}%` } }, { '$SiteService.service$': { [Op.like]: `%${search}%` } }, ]; }
错误信息
sqlMessage: "Unknown column 'SiteService.service' in 'where clause'",
模型关联定义
Site与SiteService的关联:
Site.hasMany(models.SiteService, { foreignKey: 'site_id', });
SiteService.belongsTo(models.Site, { foreignKey: 'site_id', });
Sequelize生成的SQL语句
SELECT count(DISTINCT(`Site`.`site_id`)) AS `count` FROM `sites` AS `Site` INNER JOIN `accounts` AS `Account` ON `Site`.`account_id` = `Account`.`account_id` INNER JOIN `customers` AS `Account->Customer` ON `Account`.`customer_id` = `Account->Customer`.`customer_id` INNER JOIN `site_services` AS `SiteServices` ON `Site`.`site_id` = `SiteServices`.`site_id` WHERE ( `Site`.`deleted_at` IS NULL AND ( (`Site`.`domain` LIKE '%test%' OR `Account`.`name` LIKE '%test%' OR `Account->Customer`.`name` LIKE '%test%' OR `SiteService`.`service` LIKE '%test%') AND `Site`.`is_active` = 1));
疑问
其他关联模型用相同方式筛选正常,仅SiteService失效,我哪里操作有误?
内容的提问来源于stack exchange,提问作者LiteralMetaphore
相关产品推荐
相关产品推荐

