我有一个执行原始查询的方法:
Friendship.getFriends= async (userId)=>{
const result = await sequelize.query(`select id,email from users where
users.id in(SELECT friendId FROM friendships where friendships.userId =
${userId})`);
return result;
};
结果似乎包含相同的精确数据,但有两次:
[ [ TextRow { id: 6, email: 'example3@gmail.com' },
TextRow { id: 1, email: 'yoyo@gmail.com' } ],
[ TextRow { id: 6, email: 'example3@gmail.com' },
TextRow { id: 1, email: 'yoyo@gmail.com' } ] ]
这个查询实际上只应该找到两条记录(id为1和6),但是它返回两次具有相同记录的数组。
有人能解释一下这是怎么回事吗?
编辑:模型:
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
email: { type: DataTypes.STRING, unique: true },
password: DataTypes.STRING,
isActive:{type:DataTypes.BOOLEAN,defaultValue:true}
});
module.exports = (sequelize, DataTypes) => {
const Friendship = sequelize.define('Friendship', {
userId: DataTypes.INTEGER,
friendId: DataTypes.INTEGER,
});
2条答案
按热度按时间qij5mzcb1#
我不确定,但尝试下面的代码。
还有一件事:使用join而不是in
disbfnqx2#
尝试在第二个参数中将查询类型设置为select。