Sequelize 查询中的查询

Posted

技术标签:

【中文标题】Sequelize 查询中的查询【英文标题】:Sequelize query in query 【发布时间】:2015-05-21 11:39:06 【问题描述】:

我有 2 个模型 Shop 和 Beacon。我必须返回分配给每个商店的总和信标。我知道如何在 SQL 中做到这一点:

SELECT Shops.*, (SELECT COUNT(id) FROM Beacons WHERE shopId = Shops.id) FROM Shops 

但我对 Sequelize 有疑问,我尝试如下:

models.Shop.findAll(
  attributes: ['id', sqz.fn('count', sqz.col('shopId'))],
  include: [
    
      model: models.Beacon
    
  ]
);

【问题讨论】:

你得到什么错误? 【参考方案1】:

此解决方案有效,但返回查询:

SELECT Shop.*, count(shopId) FROM Shops LEFT OUTER JOIN Beacons ON Shop.id = Beacons.shopId

【讨论】:

以上是关于Sequelize 查询中的查询的主要内容,如果未能解决你的问题,请参考以下文章

sequelize 是不是可以通过关联表中的属性过滤查询?

如何使用 sequelize 基于 sqlite3 中的“日期”列进行查询?

Sequelize 循环中的查询执行

sequelize getter 方法中的异步表查询

Sequelize(或清除 SQL)查询以选择包含 JSON 字段中的值的行?

如何对 Sequelize 中的查询结果进行排序?