[英]sequelize - Where clause with associations
在sequelize我有板和用戶設置,有如下多對多的關聯
User.hasMany(Board, {through: BoardUsers});
Board.hasMany(User, {through:BoardUsers});
無論如何,使用where子句我可以找到屬於其中一個板的用戶。 例如,讓我說我有3個板,我想找到屬於板1或3的前20個用戶(使用默認排序順序)。有沒有辦法在不為每個板執行單獨的查找的情況下執行此操作,然后手動組合結果。
我希望能夠做到這樣的事情:
User.findAll({where:{board: [1,3]}});
但我似乎找不到辦法做到這一點。
據我所知,等效的SQL將是這樣的:
SELECT * FROM `users` WHERE id IN (SELECT userID FROM boardusers WHERE boardId IN (1,3))
但我希望能夠通過ORM來做到這一點。
雖然我不確定您是否可以直接執行此操作,但您始終可以查詢Boards
並熱切地獲取用戶。
這些方面的東西:
Board.findAll({where: {id: [1,3]}}, { include: [ User ] })
相當遲到的反應,但只是有同樣的問題,這就是我如何讓它在Sequelize 3.24.0中工作(類似這樣);
User.findAll({ include: [{ model: Board, where: { $in: [1,3] }}] });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.