mysql - 使用 MYSQL : Raw query returns a "duplicate" result 进行 Sequelize

标签 mysql node.js sequelize.js

我有这个执行原始查询的方法:

 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,      
  });

最佳答案

尝试在第二个参数中将查询类型设置为 SELECT。

sequelize.query(queryString, {type: sequelize.QueryTypes.SELECT})

关于mysql - 使用 MYSQL : Raw query returns a "duplicate" result 进行 Sequelize ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53460754/

相关文章:

php - MYSQL 正负值求和

php - 网络机器人可以增加下载量吗?

node.js - 如何将 NPM 模块(十进制)添加到 ArangoDB 以进行 ACID 事务

javascript - 使用 React JS 搜索结果分页

node.js - Gitlab Ci 上的触发输入

mysql - 在 Sequelize 中创建包含与 hasOne 关联的行

java - 我应该如何使用 java servlet、JSP 和 Tomcat 管理与数据库的连接

mysql - 每天计算推文,按同一张表中的其他 3 列进行加权

node.js - 继承 ORDER BY

sequelize.js - 修改 findOne 函数返回的数据