使用sequelize+mysql,为什么在include里面添加where会导致查询不到结果?
发布于 8 年前 作者 lncwwn 3525 次浏览 来自 问答

使用Sequelize定义了Category,然后category可能有二级category,所以定义了category跟自己本身的hasmany的关系: Category.hasMany(Category, {foreignKey: 'pid', through: null });

然后在category的findAll方法中添加了用于联合查询的include属性

Category.findAll({
	...
	include: {
		model: Category,
		attributes: [...],
		where: {
			is_deleted: 0
		}
	}
})

在上面的where条件中我加上is_deleted是想把满足is_deleted=0的二级category查询出来,但是加上这个where以后结果集为空,去掉就可以(当然不满足要求,is_deleted=1的类目也被查询出来了) 请问应该如何解决?

1 回复

你两个category的连接条件是什么,没明白你想查什么

回到顶部