14赞
125
当前位置:  开发笔记 > 编程语言 > 正文

查询联结表而不在Sequelize中获取这两个关联

如何解决《查询联结表而不在Sequelize中获取这两个关联》经验,是哪儿的问题?

考虑以下模型:

var User = sequelize.define('User', {
  _id:{
    type: Datatypes.INTEGER,
    allowNull: false,
    primaryKey: true,
    autoIncrement: true
  },
  name: Datatypes.STRING,
  email:{
    type: Datatypes.STRING,
    unique: {
      msg: 'Email Taken'
    },
    validate: {
      isEmail: true
    }
  }
});

var Location= sequelize.define('Location', {
  _id:{
    type: Datatypes.INTEGER,
    allowNull: false,
    primaryKey: true,
    autoIncrement: true
  },
  name: Datatypes.STRING,
  address: type: Datatypes.STRING
});

Location.belongsToMany(User, {through: 'UserLocation'});
User.belongsToMany(Location, {through: 'UserLocation'});

有没有办法查询UserLocation表格的具体UserId和获得相应的Locations.就像是:

SELECT * FROM Locations AS l INNER JOIN UserLocation AS ul ON ul.LocatiOnId= l._id WHERE ul.UserId = 8

从我能找到的你可以做类似的事情:

Location.findAll({
  include: [{
    model: User,
    where: {
      _id: req.user._id
    }
  }]
}).then( loc => {
  console.log(loc);
});

然而,这种返回Locations,UserLocation路口,并且User它被加入User表时,我不需要任何用户信息,我需要的只是Locations该用户.我所做的是工作,但是,首选查询结点表而不是表上的查找User.

我希望这很清楚.提前致谢.

编辑

我实际上最终以不同的方式实现了这一点.但是,我仍然会将此作为一个问题,因为这应该是可能的.


推荐阅读
author-avatar
李辰1990
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有