Contact
とThread
の2つのモデルがあり、多対多の関係が結合表ThreadContacts
で表されています。Sequelize:異なる条件で同じ結合表を照会します
私はに問い合わせを書く必要があります。連絡先の正確なリストとの関連付けを持っているスレッドを見つける。たとえば、contact_id
の [1,2,3,4]のリストがあり、正確な4つの連絡先に関連付けられているThread
が必要です。
私はfindAllのクエリにContact
含めて試してみました。もちろん
Thread.findOne({
include: [{
model: Contact,
where: { id: $in: [1, 2, 3, 4] },
}],
})
それは4つのIDのいずれかとThreadContactを持っているスレッドを返しますので、これは動作しません。
私はこのような何か必要があります:それは同じモデルの重複を含めているので、これも動作しません。しかし
Thread.findAll({
include: contactIds.map(id => ({
model: Contact,
where: { id },
}),
})
を。
ここには何がありますか?私はこのための解決策を見つけるのが難しい時があります。
代わりに、これは私が 'join 'を行う必要があるときに使うものですが、これをやっている"続ける "方法の例を見たいと思っています。 –
ええ、Sequelizeで見るのはいいですが、これは私のアプリケーションではうまくいきます。ありがとう:) –
ARRAY [:contactIds]と array_agg(thread_contacts.contact_id)の配列識別子(*)の配列*の正確な*リストが含まれている必要があるため、 <@ ARRAY [:contactIds]; ' –