在 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 实现失败的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs续集批量更新

续集查询nodejs

nodejs续集加载嵌套模型

通过模型关联对nodejs进行续集

如何防止nodejs中的sql注入和续集? [关闭]

节点续集 (MSSQL) - 用户 '' 登录失败