我有这些联想:
Room hasMany Key
User hasMany Key
现在我想找到特定用户拥有密钥的所有房间。
目前,我获得了具有特定user_id
的所有密钥。
然后我得到所有房间并过滤掉那些没有找到钥匙的房间。这似乎相当愚蠢,因为所有这些都可以用一个SQL命令完成。
我可能会拔出每个密钥的room_id
并在房间的查询中使用它们,但这些仍然是两个请求。
答案 0 :(得分:2)
您应该可以使用prefetching / includes来解决此问题。
您可以使用以下内容:
Room.findAll({
include: [
{model: Key, where: {user_id: 1}}
]
});
或者
Room.findAll({
include: [
{model: Key, include: [
{model: User, where: {id: 1}}
]}
]
});