У меня есть таблицы базы данных со связями, как показано ниже.
Cagetory ---> CategorItems //One to many(CategoryItem has categoryId colum)
CatgeoryItems ---> Post // One to many(Post has categoryItemId).
Я хочу подсчитать общее количество записей в Post
groupBy categoryItemId
, также возвращающихся по имени categoryItem
,и categoryName
.Я хочу столбцы, как возвращено
CategoryName, item, totalInPostTable
Я использую Sequelize RDB Mapper.Когда я использую запрос ниже
models.Post.findAll({
include: [{
model: models.CategoryItem,
attributes: ['item'],
required: true,
include: [{
model: models.Category,
attributes: ['name'],
required: true,
group: ["name"]
}]
}],
attributes: ['categoryItemId'],
})
Он возвращает запись ниже
{
"categoryItemId": 1,
"CategoryItem": {
"item": "xxxxxx",
"Category": {
"name": "xxxxxx"
}
}
},
{
"categoryItemId": 1,
"CategoryItem": {
"item": "xxxxxx",
"Category": {
"name": "xxxxxx"
}
}
},
{
"categoryItemId": 1,
"CategoryItem": {
"item": "xxxxxx",
"Category": {
"name": "xxxxxx"
}
}
},
{
"categoryItemId": 1,
"CategoryItem": {
"item": "xxxxxx",
"Category": {
"name": "xxxxxx"
}
}
},
{
"categoryItemId": 1,
"CategoryItem": {
"item": "xxxxxx",
"Category": {
"name": "xxxxxx"
}
}
},
{
"categoryItemId": 2,
"CategoryItem": {
"item": "xxxxxx",
"Category": {
"name": "xxxxxx"
}
}
},
{
"categoryItemId": 4,
"CategoryItem": {
"item": "xxxxxx",
"Category": {
"name": "xxxxxx"
}
}
}
Однако, он завершился неудачно и вернул null без ошибок, как только я сгруппировал идентификатор categorypryItem, как показано ниже.
models.Post.findAll({
include: [{
model: models.CategoryItem,
attributes: ['item', [sequelize.fn('COUNT', sequelize.col('id')), 'no_category']],
required: true,
include: [{
model: models.Category,
attributes: ['name'],
required: true,
}]
}],
attributes: ['categoryItemId'],
group: ["categoryItemId"]
})
Пожалуйста, что я делаю не так?Любая помощь будет оценена.