Ayy*_*a A 14 mysql orm join node.js sequelize.js
我有三个表承包商,项目和连接表这两个是projects_contractors我创建了模型并写了如下的关系,
Contractor.hasMany(Project, {joinTableName: 'projects_contractors'})
Project.hasMany(Contractor, {joinTableName: 'projects_contractors'})
Run Code Online (Sandbox Code Playgroud)
我想访问这个基于Contractor的项目意味着内部JOIN.
核心查询:选择c.id,c.name,p.id,p.name来自承包商c内联接projects_contractors pc on c.id = pc.contractor_id inner join projects p on p.id = pc.project_id
我在实现以下代码时失败了."required"是一个用于内部JOIN的关键字,但如果我们保留则不起作用.
Contractor.findAll({ include: [Project, {required: false}]}).success(function(list){
console.log("hi")
res.send(204)
})
Run Code Online (Sandbox Code Playgroud)
如果不需要,它将在项目和承包商上创建一个左外部JOIN.建议我上面的senario示例.
Mic*_*sen 22
正确的语法是:
Contractor.findAll({ include: [{model: Project, required: true}]})
通常,include params既可以是模型,也可以是带有模型参数的对象,可选择为/ required/include/where params.
| 归档时间: |
|
| 查看次数: |
14365 次 |
| 最近记录: |