在 NodeJS 中续集:内部 JOIN 实现失败
Posted
技术标签:
【中文标题】在 NodeJS 中续集:内部 JOIN 实现失败【英文标题】:Sequelize in NodeJS : Inner JOIN implementation Failure 【发布时间】:2014-06-15 04:13:40 【问题描述】:我有三个表承包商、项目和可连接的这两个表是 projects_contractors,我创建了模型并编写了如下所示的关系,
Contractor.hasMany(Project, joinTableName: 'projects_contractors')
Project.hasMany(Contractor, joinTableName: 'projects_contractors')
我想访问这个基于 Contractor 的项目意味着内部 JOIN。
核心查询: 从承包商中选择 c.id,c.name,p.id,p.name c inner join 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)
)
如果不需要,它将在项目和承包商上创建一个左外部 JOIN。建议我为上述 senario 提供一个示例。
【问题讨论】:
你试过required: true
吗?
@MickHansen:是的,我试过了,但显示以下错误:包括格式错误。预期属性:daoFactory, as!
【参考方案1】:
正确的语法是:
Contractor.findAll( include: [model: Project, required: true])
通常,包含参数采用模型,或带有模型参数和可选 as/required/include/where 参数的对象。
【讨论】:
以上是关于在 NodeJS 中续集:内部 JOIN 实现失败的主要内容,如果未能解决你的问题,请参考以下文章