首页 > 解决方案 > 如何 sequelize.js 这个 SQL 查询

问题描述

我在我的 nodeJS 应用程序上使用 sequelize 来查询 sql 数据库。

我尝试对这个查询进行续集,但它不起作用......

有人能帮帮我吗?

`SELECT content, COUNT(*) count FROM `hashtags` GROUP BY content ORDER BY count DESC LIMIT 10`

我试试

Tags.findAll({group: ['content'], attributes: ['content', [sequelize.fn('COUNT', 'content'), 'content']],}).then(function(results) {

标签是一个带有日期、内容、id_tweet、id 的续集定义。

我有另一个查询,但我不知道要这样做,因为有 2 个内部联接和计数:

SELECT COUNT(*) AS nombredetweets, h.content, u.pseudo FROM tweets t INNER JOIN hashtags h ON t.id = h.id_tweet INNER JOIN user u ON t.id_user = u.id WHERE h.content = ? AND u.pseudo = ?

谢谢 ;)

标签: mysqlnode.jssequelize.js

解决方案


看起来问题在于您如何命名计数结果。尝试这个:

Tags.findAll({
  group: ['content'],
  attributes: [
    'content',
    [
      sequelize.fn('COUNT', 'content'),
      'count'
    ]
  ],
  order: [['count', 'DESC']],
  limit: 10,
}).then(function(results) {
  // ...
})

推荐阅读