сиквелизировать findall с числом дочерних отношений для каждого родителя - PullRequest
1 голос
/ 19 марта 2020

и спасибо за ответы.

я использую nodejs / sequelize / mysql

это моя проблема:

У меня есть клиент таблицы, как это:

id username age name   
----------------------
12 seveun   25  john  |
----------------------
10 superlol 12  johny |
----------------------

клиент таблицы имеет отношение один ко многим со statisti c table

таблица statisti c выглядит так:

id  gain  profit clientId
-------------------------
12  22     25      12   |
-------------------------
10 34      12      12   |
-------------------------
10 34      12      10   |
-------------------------

я хочу этот результат:

{
 client: [
  {
    'username': 'seveun',
    'statistic': [total: 2]
  },
  {
    'username': 'superlol'
    'statistic': [total: 1]
  }
 ]
}

я проверяю этот код сиквелиза:

await ClientModel.findAll({
  include: [
   {
     as: 'statistic',
     model: StatisticModel,
     attributes: [
       [[Sequelize.fn("COUNT", Sequelize.col("statistic.id")), "total"]] 
     ],
   },
 ],
});

, но подсчитайте, подсчитайте каждую статистику c, а не статистику c для каждого родителя

мой результат:

client: [
  {
    'username': 'seveun',
    'statistic': [total: 3]
  }

большое спасибо за вашу помощь

...