如何在Sequelize中的select查询中进行group_concat?

时间:2017-11-08 13:18:10

标签: node.js sequelize.js

我想在sequelize的select查询中做GROUP_CONCAT这里是我的要求我想要的

SELECT `group_name`, `description`, GROUP_CONCAT(`module_name`) FROM `group_access` GROUP BY `group_name`

我想在sequelize中编写这种类型的查询。

这就是我的尝试。

groupAccess.findAll({
    attributes: ['group_name', 'description', 'GROUP_CONCAT(module_name)'],
    group: ['group_name']
})

但它显示错误Unknown column 'GROUP_CONCAT(module_name)' in 'field list'

如何在sequelize中编写GROUP_CONCAT。我甚至在网站上搜索过但没有找到任何解决方案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

根据 Sequelize 文档,您需要使用sequelize.fn进行聚合: 这样的事情(未经测试):

groupAccess.findAll({
  attributes: [
    'group_name',
    'description',
    [sequelize.fn('GROUP_CONCAT', sequelize.col('module_name')), 'module_name']
  ],
  group: ['group_name']
})

Sequelize Querying