想要从特定用户的聊天表中获取聊天详细信息以及发件人和收件人详细信息(都是此应用的用户,因此用户详细信息存储在用户表中) 我已经尝试过该查询
聊天表包含
recipientId
,senderId
message
,created_at
和updated_at
。
id
//仅是用户ID,他可以是发件人或收件人
const result = await models.chat.findAll({
where: {
$or: [{
senderId: {
$eq: id
}
}, {
recipientId: {
$eq: id
}
}]
}, include :[{
model:models.User,
as:'User'
}]
})
通过上述查询,我只获得收件人的用户详细信息,但我想同时获得两个用户的详细信息。
答案 0 :(得分:0)
在这里,您可以通过关联定义diff别名:
chat.belongsTo(User, {as: 'sender', foreignKey : 'senderId'});
chat.belongsTo(User, {as: 'recipient', foreignKey : 'recipientId'});
await models.chat.findAll({
where: {
$or: [{
senderId: { $eq: id }
},{
recipientId: { $eq: id }
}]
},
include :[
{ model:models.User , as:'sender' },
{ model:models.User , as:'recipient' }
]
})