sequelize js多级表casecade join

时间:2016-11-12 08:45:18

标签: database join sequelize.js

我要选择用户详细信息作为表格结构。

  

表用户列{user_id,region_id,user_name}

     

表区域列{region_id,country_id}

     

表国家/地区列{country_id,country_name}

我已将表格模型加入

db.user.hasOne(db.region, {foreignKey:"region_id", targetKey:"region_id"});
db.region.hasOne(db.country,{  foreignKey :"country_id", targetKey:"country_id" });
db.user.hasOne(db.country,{through:db.region,otherKey :"country_id", foreignKey :"user_id" });

现在我要选择包含地区名称的用户详细信息,并在此处包含国家名称是我的控制器

 models.user.findAll(
   {
    include: [
        {
          model: models.region,
          model: models.country
        }
      ]
});

但此节目用户未与国家/地区

相关联

请救救我

1 个答案:

答案 0 :(得分:1)

它应该是多级联接作为您的架构

 models.user.findAll(
   {
    include: [
        {
          model: models.region,
            include:[{model:models.country}]
        }
      ]
});

提供用户所属的区域,区域属于国家 你可以搜索更多关于关系的一些例子

  

一对一关系:作为用户,您可以拥有一个(hasOne)   轮廓。当然逆也适用。个人资料(belongsTo)a   用户。用户不能拥有多个配置文件,而配置文件则不能   属于多个用户。

另外

  

我们可以使用belongsTo方法定义hasOne关系的倒数。