Orm 使用Sequelize连接3个表

Orm 使用Sequelize连接3个表,orm,sequelize.js,Orm,Sequelize.js,我正在尝试将下面的原始查询转换为ORM,但无法实现任何功能 原始查询 select * from "Invoices" I LEFT JOIN "Requests" R ON R."id" = I."requestId" LEFT JOIN "Supps" S ON S."requestId" = R."id" where S."confirm" = 'OK' 我所尝试的: Requests.belongsTo(Invoices, { foreignKey: "id" }); S

我正在尝试将下面的原始查询转换为ORM,但无法实现任何功能

原始查询

select * from "Invoices" I 
LEFT JOIN "Requests" R ON R."id" = I."requestId" 
LEFT JOIN "Supps" S ON S."requestId" = R."id" 
where S."confirm" = 'OK'
我所尝试的:

  Requests.belongsTo(Invoices, { foreignKey: "id" });
  Supps.belongsTo(Requests, { foreignKey: "requestId" });
  Supps.hasMany(Requests, { foreignKey: "requestId" });
  Invoices.hasMany(Requests, { foreignKey: "requestId" });

  Invoices.findOne({
    include: [{ model: Requests, required: false }, { model: Supps, required: false }],
    where: { Sequelize.col("Supps.confirm"): { "OK" } }
  }).then(data => {
    console.log(data);
  })

但是这会生成一个非常长的查询,其中包含多个子查询和错误的数据

,当然您还需要在关联中添加
sourceKey
。()

您还可以添加
{raw:true}
以获得一级json响应

 Invoices.findOne({
    include: [{ model: Requests, required: false }, { model: Supps, required: false }],
    where: { Sequelize.col("Supps.confirm"): { "OK" } },
    raw:true
  }).then(data => {
    console.log(data);
  });

我请求您共享sequelize生成的查询。
 Invoices.findOne({
    include: [{ model: Requests, required: false }, { model: Supps, required: false }],
    where: { Sequelize.col("Supps.confirm"): { "OK" } },
    raw:true
  }).then(data => {
    console.log(data);
  });