有一张产品表,还有一张规格表,规格表里有销量字段,我怎样查出产品排序按照总销量排序。谢谢。
查询右查询怎么设置?
sequlize要做关联查询必须两个表是有关系的
如果建立了关系product 表
Specifications 表
如果是一对多的情况可以通过
product.findAll({ include:[ { attributes:[ 'id', 'name' [sequelize.fn('sum', Specifications.col('销量'), 'asname'], ] model:Specifications, order: [ sequelize.fn('max', 'asname'), ] } ], })
比如说我有table1,table2模型
table1
const Sequelize = require('sequelize'); const connect = require('../../db/db_tp.js'); const table1 = connect.define('table1', { id: {type:Sequelize.INTEGER,primaryKey: true,autoIncrement: true}, ustr: Sequelize.STRING(10), pstr:Sequelize.STRING(10), },{ tableName: 'table1'//指定表名 }) module.exports = table1;
table2
const Sequelize = require('sequelize'); const connect = require('../../db/db_tp.js'); const table2 = connect.define('table2', { id: {type:Sequelize.INTEGER,primaryKey: true,autoIncrement: true}, ustr: Sequelize.STRING(10), pstr:Sequelize.STRING(10), },{ tableName: 'table2'//指定表名 }) module.exports = table2;
封装table1table2的index.js
const connect = require('../../db/db_tp.js'); let table1 = require('./table1.js'); let table2 = require('./table2.js'); let table3 = require('./table3.js'); //定义关系 table1.hashMany(xxxxx); //同步到数据库 connect.sync(xxxx); module.exports = { table1, table2, table3, }
使用的地方 route.js
let {table1,table2,table3} = require('./index') table1.findAll({ include:[ { attributes:[ 'id', 'name', [sequelize.fn('sum', sequelize.col('销量'), 'asname'], ], model:table2, order: [ sequelize.fn('max', 'asname'), ] } ], }).then(res=>{ //do something },err=>{ //do something })
来查询
只是做个示例,具体情况按照你的来写。详细学习你可以看看
Sequelize 中文API文档-3. 模型(表)之间的关系/关联
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
查询右查询怎么设置?
sequlize要做关联查询必须两个表是有关系的
如果建立了关系
product 表
Specifications 表
如果是一对多的情况
可以通过
比如说我有table1,table2模型
table1
table2
封装table1table2的index.js
使用的地方 route.js
来查询
只是做个示例,具体情况按照你的来写。
详细学习你可以看看
Sequelize 中文API文档-3. 模型(表)之间的关系/关联