簡體   English   中英

sequelize - 具有關聯的Where子句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM