我试图创建一个查询,查找价格低于或等于avgPrice的产品。
下面是示例查询。
await Product.findAll({
attributes: [
'id', 'name', 'price',
[sequelize.literal(`SELECT AVG(price) from Products`), 'avgPrice']
],
where: {
price: {
[Sequelize.Op.lte]: sequelize.col('avgPrice')
}
}
但是它给出了以下错误。
Unknown column 'Products.avgPrice' in 'where clause'
此外,我还试图复制由sequelize生成的查询,并在mysql中手动执行它,但是它会产生相同的错误。
这不是我们运行查询的方式吗?
编辑:我将查询要求从avgPrice < 100更改为价格< avgPrice。然而,问题的问题是一样的。
发布于 2019-12-23 03:02:34
如果要基于聚合列进行筛选,则需要将WHERE
子句更改为HAVING
。
https://stackoverflow.com/questions/59453957
复制相似问题