SQL查询到Sequelize查询

时间:2016-07-14 14:07:15

标签: mysql node.js sequelize.js

select *
From Visitors
join CsvData on
CsvData.fileName = Visitors.fileName

如何像上面那样进行连接。

db.Visitors.find({
    include:[{
        model: CsvData,
        joinCondition: {
            Visitors.fileName : CsvData.fileName  //*wrong syntax but rough idea
        }
    }]
})

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

你几乎就在那里:)你首先要associate这两个模特。假设fileName被定义为CsvData上的主键:

Visitors.hasMany(CsvData, {
  as: 'CsvDataItems',
  foreignKey: 'fileName'
});

Visitors.findAll({
  include:[{
    model: CsvData,
    as: 'CsvDataItems' // Must match the "as" specified in the association above
  }]
}).then(function(results) {
  console.log('Success!', results);
}).catch(function(err) {
  console.error('Something went wrong', err);
});

请注意,如果您想要一个正确的加入(我知道您没有问,但是嘿),您可以将required: true添加到include对象。