NodeJS 按ID顺序连接两个表

flvlnr44  于 2023-01-08  发布在  Node.js
关注(0)|答案(1)|浏览(139)

我有一个图书用户表和一个电影用户表,我试图返回前100名电影观众的列表,以及他们的图书档案信息,我想在id上加入,但我似乎找不到正确的语法。
这是我尝试过的方法:

const mostActiveMovieWatchers = await MovieWatchers.findAll({
      order: [
        ['moviesWatched', 'DESC'],
      ],
      limit: '100',
      include: [{
        model: BookReaders,
        where: { 
          userId: '$MovieWatchers.id$'
        },
        required: true
      }]
    });

我还看到过where子句类似于where: ['userId = id']的示例

s5a0g9ez

s5a0g9ez1#

在连接表之前,您需要创建关联:

BookReaders.hasMany(MovieWatchers, { foreignKey: 'bookId' });

MovieWatchers.belongsTo(BookReaders, { foreignKey: 'bookId' });

然后,您可以在MovieWatchers模型上的find或findAll方法调用中使用include选项,以指定要包含关联的BookReader数据:

MovieWatchers.findAll({
  include: [
    {
      model: BookReaders,
    },
  ],
}).then((movies) => {
  // array of movies including books
});

相关问题