如何将 SQL 查询转换为 sequelize?

Posted

技术标签:

【中文标题】如何将 SQL 查询转换为 sequelize?【英文标题】:How do I convert SQL query to sequelize? 【发布时间】:2020-03-22 14:30:20 【问题描述】:

我有这个 sql 块 - 我正在使用 postgres DB。 如何将此查询转换为 sequelize ORM 格式?谢谢

select 
    to_char (created_at,'Mon') as month,
    extract (year from created_at) as year,
    id_product as product ,
    sum (sales) as sales
from 
    toiletries
group by 
    1, 2, 3

【问题讨论】:

我想你不能使用续集模型来做到这一点。只能通过原始 SQL 查询。 【参考方案1】:

你可以通过使用 sequelize.literals() 来达到这个目的

const Toiletries = sequelize.define('toiletries', 
    id_product: 
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    ,
    productName: 
        type: Sequelize.TEXT,
    
    sales: 
     type: Sequelize.INTEGER,
    
, 
    freezeTableName: true,
    tableName: 'toiletries'
);
Toiletries.findAll(
  group: ['id_product', 'createdAt'],
  attributes: [
    ['id_product', 'product'],
    [sequelize.literal('extract(YEAR FROM "createdAt")'), 'year'],
    [sequelize.literal('sum (sales)'), 'sum']
  ]
).then((inn) => 
  console.log(JSON.stringify(inn))
);

您需要对“to_char”列进行一些挖掘。如果您提供表结构,我们也可以提取它。

【讨论】:

感谢您的回答,我会尝试执行您发布的查询并让您知道结果

以上是关于如何将 SQL 查询转换为 sequelize?的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize将日期从UTC转换为本地

Sequelize 将传递的日期对象转换为本地日期

使用 sequelize 将 datetime 转换为 where 条件下的列的日期

将 SQL 查询转换为 Drupal 7 PHP 规则

将sql连接查询转换为mongodb

将 wpdb sql 数组转换为 php 数组