Sequelize.js 加入Sequelize

Sequelize.js 加入Sequelize,sequelize.js,Sequelize.js,我有以下协会: Room hasMany Key User hasMany Key 现在我想找到一个特定用户有钥匙的所有房间 目前,我得到了所有具有特定用户id的密钥 然后我找到所有的房间,过滤掉那些没有找到钥匙的房间。这看起来相当愚蠢,因为所有这些都可以通过一个SQL命令完成 我可能会取出每个钥匙的房间id,并在房间查询中使用它们,但这仍然是两个请求。您应该能够使用预取/包含来解决此问题 您可以使用以下内容: Room.findAll({ include: [ {model: K

我有以下协会:

Room hasMany Key
User hasMany Key
现在我想找到一个特定用户有钥匙的所有房间

目前,我得到了所有具有特定
用户id
的密钥

然后我找到所有的房间,过滤掉那些没有找到钥匙的房间。这看起来相当愚蠢,因为所有这些都可以通过一个SQL命令完成


我可能会取出每个钥匙的
房间id
,并在房间查询中使用它们,但这仍然是两个请求。

您应该能够使用预取/包含来解决此问题

您可以使用以下内容:

Room.findAll({
  include: [
    {model: Key, where: {user_id: 1}}
  ]
});


那么这就是join的续集等价物?好吧,我要试试,谢谢:)@K。。您可以说,尽管它不支持任意联接,但它对您建立的关系有效。
Room.findAll({
  include: [
    {model: Key, include: [
      {model: User, where: {id: 1}}
    ]}
  ]
});