如何查询多对多关系续集?

编程入门 行业动态 更新时间:2024-10-24 02:02:06
本文介绍了如何查询多对多关系续集?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

表之间存在多对多关系,由订单表连接.

Tables have many to many relationship, junction by an order table in between.

Outlet --> 订单 <-- 产品

Outlet --> Order <-- Product

我想获取今天订单的 Outlet 列表.

I want to get the list of Outlet for today Order.

所以这是一个获取所有出口的函数:

So here is a function to get all outlets:

db.Outlet.findAll({include: [ {model:db.Product, attributes: ['id', 'name', 'nameKh']} ]}).then(function(outlets){ return res.jsonp(outlets); })

我得到了这个结果:

我只能使用 where Product Id 选择:

I can only select with where Product Id by using this:

db.Outlet.findAll({include: [ {model:db.Product, attributes: ['id', 'name', 'nameKh'], where: {id: 2} ]}).then(function(outlets){ return res.jsonp(outlets); })

如何查询具体的订单金额,或今天的订单日期?

How can I query by specific order amount, or today order date?

这是我的模型:

出口:

var Outlet = sequelize.define('Outlet', { outletCode: DataTypes.STRING, outletName: DataTypes.STRING, outletNameKh: DataTypes.STRING, outletSubtype: DataTypes.STRING, perfectStoreType: DataTypes.STRING, address: DataTypes.STRING }, { associate: function(models){ Outlet.belongsToMany(models.Product, {through: models.Order}); Outlet.belongsTo(models.Distributor); // Outlet.hasMany(models.Order); } } );

产品:

var Product = sequelize.define('Product', { inventoryCode: DataTypes.STRING, name: DataTypes.STRING, nameKh: DataTypes.STRING, monthlyCaseTarget: DataTypes.INTEGER, pieces: DataTypes.INTEGER, star: DataTypes.BOOLEAN, price: DataTypes.FLOAT, active: DataTypes.BOOLEAN }, { associate: function(models){ Product.belongsToMany(models.Outlet, {through: models.Order}); Product.belongsTo(models.Category); // Product.hasMany(models.Order); } } );

订单:

var Order = sequelize.define('Order', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, amount: DataTypes.INTEGER }, { associate: function(models){ Order.belongsTo(models.Outlet); Order.belongsTo(models.Product); Order.belongsTo(models.User); } } );

推荐答案

试试看:

db.Outlet.findAll({ include: [{ model:db.Product, attributes: ['id', 'name', 'nameKh'], through: { where: { amount: 10 } } }] })

更多推荐

如何查询多对多关系续集?

本文发布于:2023-10-25 08:55:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1526496.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:续集   关系

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!