Mysql 继续执行一对多关联属性的何处查询?
我在数据库中有以下表格:Mysql 继续执行一对多关联属性的何处查询?,mysql,database,sequelize.js,Mysql,Database,Sequelize.js,我在数据库中有以下表格: Users:id | name | age 爱好:id |用户id |爱好 在sequelize中,我有以下关联: 用户。有很多(爱好) 嗜好。归属于(用户) 要检索用户列表及其爱好,查询如下: Users.findAll(包括:[{model:habiods}]) 我将查询结果映射到域对象 查询结果如下所示: [{id:1,姓名:'John',年龄:20岁,爱好:['fishing','running']}] 我试图返回一个有钓鱼爱好的用户列表 据我所知,我可以对关联
Users:id | name | age
爱好:id |用户id |爱好
在sequelize中,我有以下关联:
用户。有很多(爱好)
嗜好。归属于(用户)
要检索用户列表及其爱好,查询如下:
Users.findAll(包括:[{model:habiods}])
我将查询结果映射到域对象
查询结果如下所示:
[{id:1,姓名:'John',年龄:20岁,爱好:['fishing','running']}]
我试图返回一个有钓鱼爱好的用户列表
据我所知,我可以对关联本身应用where查询,如下所示:
Users.findAll(包括:[{model:habiods,其中:{habiody:'fishing'}])
但这仍然会返回所有用户,并且只会返回每个钓鱼用户的爱好
有没有办法根据用户的爱好在用户级别应用where查询?我认为您需要更改加入类型。Sequelize在连接两个模型时默认使用左外连接,但如果通过将
required
设置为true
将其更改为内部连接,则将获得预期的结果-
Users.findAll(include: [{model: Hobbies, where: {hobby: 'fishing'}, required : true}])
我希望有帮助 看